做网站用哪个软件写比较好,培训网站大数据分析,国外做展台搭建的设计网站,浦口区建设局网站直接上代码#xff0c;后面我也有一个问题#xff0c;关于对象的notifyAll或者notify或者single或者singleAll#xff0c;唤醒线程是顺序唤醒吗#xff0c;我这里都是顺序输出了 关于公平与非公平锁的问题#xff1f;唤醒是公平的#xff1f;#xff1f;#xff1f;又没… 直接上代码后面我也有一个问题关于对象的notifyAll或者notify或者single或者singleAll唤醒线程是顺序唤醒吗我这里都是顺序输出了 关于公平与非公平锁的问题唤醒是公平的又没有大佬帮助解答 1 import java.util.concurrent.LinkedBlockingQueue;2 import java.util.concurrent.ThreadPoolExecutor;3 import java.util.concurrent.TimeUnit;4 import java.util.concurrent.locks.Condition;5 import java.util.concurrent.locks.Lock;6 import java.util.concurrent.locks.ReentrantLock;7 8 /**9 * 使用lock对象使多个线程循环输出0-99-0-99
10 */
11 public class AandBforTOthreadLock {
12 private static Lock locknew ReentrantLock();
13 private static Condition singlelock.newCondition();
14 static class A implements Runnable{
15 private int i0;
16 public A(int i){
17 this.ii;
18 }
19 Override
20 public void run() {
21 try {
22 lock.lock();
23 while (true){
24 System.out.println(i);
25 single.await();
26 single.signal();
27 }
28 }catch (Exception e){
29 e.printStackTrace();
30 }finally {
31 lock.unlock();
32 }
33 }
34 }
35 static class B implements Runnable{
36 Override
37 public void run() {
38 try {
39 lock.lock();
40 while (true){
41 System.out.println(99);
42 single.signalAll();
43 single.await();
44 }
45 }catch (Exception e){
46 e.printStackTrace();
47 }finally {
48 lock.unlock();
49 }
50 }
51 }
52
53 public static void main(String[] args) throws InterruptedException {
54 ThreadPoolExecutor threadPoolExecutornew ThreadPoolExecutor(100,100,0L, TimeUnit.MILLISECONDS,
55 new LinkedBlockingQueueRunnable());
56 for (int i0;i99;i){
57 threadPoolExecutor.execute(new A(i));
58 Thread.sleep(3l);
59 }
60 Thread.sleep(10000l);
61 threadPoolExecutor.execute(new B());
62 }
63
64 }输出 …… 转载于:https://www.cnblogs.com/qfxydtk/p/8728840.html