Java?????????
????????μ??? ???????[ 2017/2/27 10:15:53 ] ??????????????????? Java
???????????
???????????????У???????ú?????????????????????????????????????????????
??????1?????????
????????????????????????????÷??????A?????a()??????B?????b()???????b()???????????a()?????????????????????÷???????????b()??????????????????b()?????????????????????????????a()????????????????????????????????????????????????????
??????2????????
???????????????????????????????????????????????????????????????÷??????A?????????a()????????????????????B?????b()??????????????????У????????????b()????????????????????????a()????С????????????????????a()?????????b()??????????????a()???????b()??н????????£????????????????Щ????????????????????????????????????????????????????????????????b()????н?????м???????Java?У????????Future+Callable?????????????????????????μ???????????Java?????21?????????????????CyclicBarrier??Callable??Future??FutureTask??
??????3?????
???????????????????????
??????A??a()??????????B??b()????
??????B??b()????????????????????A??callback()????
?????????????÷????????????????????????÷????
???????????
??????????????????????????????????????????????????????????????????????????????
???????????????????????????????tellAnswer(int answer)???????????????????????
1 /**
2 * ?????????????http://www.cnblogs.com/xrq730/p/6424471.html
3 */
4 public interface Callback {
5
6 public void tellAnswer(int answer);
7
8 }
?????????????????????Callback????
1 /**
2 * ?????????????http://www.cnblogs.com/xrq730/p/6424471.html
3 */
4 public class Teacher implements Callback {
5
6 private Student student;
7
8 public Teacher(Student student) {
9 this.student = student;
10 }
11
12 public void askQuestion() {
13 student.resolveQuestion(this);
14 }
15
16 @Override
17 public void tellAnswer(int answer) {
18 System.out.println("????????????" + answer);
19 }
20
21 }
?????????????????public??????
??????1????????tellAnswer(int answer)????????????????????????????????
??????2??????????askQuestion()???????????????
?????????????????????????????????????????????Callback????????????????????????????????棺
1 /**
2 * ?????????????http://www.cnblogs.com/xrq730/p/6424471.html
3 */
4 public interface Student {
5
6 public void resolveQuestion(Callback callback);
7
8 }
?????????????????????Ricky??
1 /**
2 * ???????Ricky?????????????????????????http://www.cnblogs.com/xrq730/p/6424471.html
3 */
4 public class Ricky implements Student {
5
6 @Override
7 public void resolveQuestion(Callback callback) {
8 // ?????????
9 try {
10 Thread.sleep(3000);
11 } catch (InterruptedException e) {
12
13 }
14
15 // ???????????????д????
16 callback.tellAnswer(3);
17 }
18
19 }
????????????????????16??????????????
????д???????????????
1 /**
2 * ??????????????http://www.cnblogs.com/xrq730/p/6424471.html
3 */
4 public class CallbackTest {
5
6 @Test
7 public void testCallback() {
8 Student student = new Ricky();
9 Teacher teacher = new Teacher(student);
10
11 teacher.askQuestion();
12
13 }
14
15 }
???????????н????У?
????????????????3
??????????????????????????
??????1???????????????????resolveQuestion???????????
??????2????????????????????????????????tellAnswer
????????????????????????????????????
???????????
?????????????????????????????????????????????
??????1??????????г???
????????????г??????????????????????????????????λ????????????????????????????ó???????????????????????????????????????????磬??????????????????κ?????
??????2??????????г???
????????????г???????????????????????????????δ??????????????????????????Ricky??Jack??Lucy????????????????????????????????Student???List<Student>???????????????????Student?б??????????????????????????
?????????????????????????????????????????????????????????Щ????????????????????????????????????????????????????????????
??????????????????????????????????this????????÷??????????÷??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????
?????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????
???????????????????κ????????????????????????????
???????????????????????????????????????????????????????????????·???????????????????????????????????????????????????·???????Щ???????????????????????????????????????????????·??????????????????????????????
??????1??????????????????????????????????????????????????????????????????????????????????н??д??????????Щ????????????????????????????????????????????????????????
??????2??????????????????????????????????·??????????????????
?????????????????????????????б???????????????????????????????????ж??????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????Ricky??????Ricky???????????????????????????????????????????????????????????????????????????????£?
?????????????One-By-One?????????????????Ricky??Mike??Lucy??Bruce??Kate??λ???????????????????????λ???????????????????????ɡ?
???????????????????????????????????????????????????????????????????
??????1?????Future+Callable????????????????н?????????????????????????????????????????????????????????????
??????2????????????????????????????????????????????????ɡ???????????????????Callback???????????????????????????????????????????????????????磬??????????????????????Callback?????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11