当前位置: 首页 > wzjs >正文

怎样建设网站最好百色seo关键词优化公司

怎样建设网站最好,百色seo关键词优化公司,济南建设银行网站,网站权重怎么刷1.通过 synchronized wait notifyAll 控制三个线程 依次输出 abc abc abc abc abc private static Thread t1, t2, t3;// 用于控制当前哪一个线程执行, state 0时 t1线程执行, state 1时 t2线程执行,state 2时 t3线程执行private static int state 0…

1.通过 synchronized wait notifyAll 控制三个线程 依次输出 abc abc abc abc abc

	private static Thread t1, t2, t3;// 用于控制当前哪一个线程执行, state = 0时 t1线程执行, state = 1时 t2线程执行,state = 2时 t3线程执行private static int state = 0;@Testpublic void test3() throws InterruptedException {t1 = new Thread(() -> {synchronized (lock) {for (int i = 0; i < 5; i++) {while (state != 0) {try {lock.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}log.info("---------------" + i + "-------------------");log.info("a");state = 1;lock.notifyAll();}}});t2 = new Thread(() -> {synchronized (lock) {for (int i = 0; i < 5; i++) {while (state != 1) {try {lock.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}log.info("b");state = 2;lock.notifyAll();}}});t3 = new Thread(() -> {synchronized (lock) {for (int i = 0; i < 5; i++) {while (state != 2) {try {lock.wait();} catch (InterruptedException e) {throw new RuntimeException(e);}}log.info("c");state = 0;lock.notifyAll();}}});t1.start();t2.start();t3.start();t1.join();t2.join();t3.join();}

2.通过 ReenTrantLock 控制三个线程 依次输出 abc abc abc abc abc

	private static Thread t1, t2, t3;// 用于控制当前哪一个线程执行, state = 0时 t1线程执行, state = 1时 t2线程执行,state = 2时 t3线程执行private static int state = 0;private static final Lock reentrantLock = new ReentrantLock();private static final Condition[] conditions = new Condition[3];@Testpublic void test4() throws InterruptedException {for (int i = 0; i < 3; i++) {conditions[i] = reentrantLock.newCondition();}Thread t1 = new Thread(() -> {reentrantLock.lock();try {for (int i = 0; i < 5; i++) {while (state != 0) {conditions[0].await();}log.info("---------------" + i + "-------------------");log.info("a");state = 1;conditions[1].signal();}} catch (InterruptedException e) {throw new RuntimeException(e);} finally {reentrantLock.unlock();}});Thread t2 = new Thread(() -> {reentrantLock.lock();try {for (int i = 0; i < 5; i++) {while (state != 1) {conditions[1].await();}log.info("b");state = 2;conditions[2].signal();}} catch (InterruptedException e) {throw new RuntimeException(e);} finally {reentrantLock.unlock();}});Thread t3 = new Thread(() -> {reentrantLock.lock();try {for (int i = 0; i < 5; i++) {while (state != 2) {conditions[2].await();}log.info("c");state = 0;conditions[0].signal();}} catch (InterruptedException e) {throw new RuntimeException(e);} finally {reentrantLock.unlock();}});t1.start();t2.start();t3.start();t1.join();t2.join();t3.join();}

3.通过 park unpark 控制三个线程 依次输出 abc abc abc abc abc

	private static Thread t1, t2, t3;@Testpublic void test5() throws InterruptedException {t1 = new Thread(() -> {for (int i = 0; i < 5; i++) {log.info("---------------" + i + "-------------------");log.info("a");LockSupport.unpark(t2);LockSupport.park();}});t2 = new Thread(() -> {for (int i = 0; i < 5; i++) {LockSupport.park();log.info("b");LockSupport.unpark(t3);}});t3 = new Thread(() -> {for (int i = 0; i < 5; i++) {LockSupport.park();log.info("c");LockSupport.unpark(t1);}});t1.start();t2.start();t3.start();t1.join();t2.join();t3.join();}
http://www.dtcms.com/wzjs/169950.html

相关文章:

  • 公职人员可以做公益网站吗百度模拟点击软件判刑了
  • 怎么自己做网站推广西安关键词网站排名
  • 北京朝阳区二手房出售信息肇庆seo外包公司
  • 如何做提卡网站搜索引擎链接
  • 烟台网站建设百度关键词快速排名
  • 做网站毕业答辩会问什么免费seo网站自动推广
  • 网站推广优化软件seo排名优化资源
  • 太原公司网站建设济南百度推广优化
  • 将网站做成logo怎么做网络营销产品的首选产品
  • 广州软件开发app淘宝seo优化
  • wordpress外贸推广seo经理招聘
  • 企业建站公司流程网站建设的重要性
  • 合肥网站建设晨飞长春模板建站代理
  • 做动态的网站的参考资料有哪些百度资源搜索平台官网
  • 旅游网站模板qq群排名优化
  • 网站正在建设模板如何快速推广网上国网
  • 中山大学精品课程网站湖南网站建设推广
  • 舟山企业网站建设批量优化网站软件
  • 网站设计怎么做毕业论文产品市场调研怎么做
  • 深圳网站制作公司多少钱开发小程序
  • 什么网站需要公安备案宁波网络推广外包
  • 贵州 政府网站建设规范网上全网推广
  • 清洁海绵的网站怎么做互联网怎么赚钱
  • 四川科隆建设有限公司网站常见的关键词
  • 每一天做网站网站点击量与排名
  • 做网站容易吧百度搜索资源
  • 杭州群游科技网站做的魔域百度关键词排名批量查询工具
  • 磁力引擎衡阳seo优化推荐
  • 乡镇网站建设搜索推广出价多少合适
  • 可视化新闻网站开发平台论坛推广案例