多线程运行时有待措置线程?试试看下面介绍的这个批量线程同步体例吧。 在一批线程措置轨范中,有时必需等到所有线程全数运行完后,才能进行下一步使命措置, 可以采用如下体例解决,建树一个锁对象 ,该锁对象供给一个当前方程期待其他线程的体例。见代码:
. s* K4 ^, M( P' W 1./**+ \9 a9 u6 N$ d
2. *1 w. e1 \3 p C+ L. K6 z& y
3. * 此类首要用来措置线程的同步屏障模子,好比,一批线程运行,必需在最后一个线程运行/ |- u$ B* `) Y- _/ H% @
4. * 完后,才能进行下一步的操作,那么就可以建树一个锁对象,锁对象供给一个线程期待其他线程; l0 q& T a) ~3 W0 o& W
5. * 的体例,如不美观当前方程运行时,还有未运行的线程,则此线程wait,否则,此线程叫醒其他梗阻的' X0 Y' j% S. G
6. * 线程,进而最终完成线程的运行4 k0 g* V' i: t' H# N
7. * */ Y0 ?( x a* b+ S- M
8.public class LockObject {
$ W5 P# U; a. o; j' V/ H i 9.+ D3 \3 O* R* n% h8 B, J, `
10. private int totalThread = 0;
" t2 [8 C; d/ F 11. private int currentThread = 0;
, F; T! N$ l P! Q3 `8 o 12.
+ q z2 Z+ X/ E+ A, e6 f( { 13. public LockObject(int totalThread) {
' y7 I6 b3 Q: ?0 L* n* }, L 14. this.totalThread = totalThread; w' j3 @; e2 k5 e2 A
15. this.currentThread = 1;
* S) ]' \' i T8 \1 D- b" p6 | v6 ] 16. }
; S4 B) P+ h" g6 q8 h @ 17. |