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

网站建设要求说明制作视频剪辑

网站建设要求说明,制作视频剪辑,从域名角度看网站建设注意事项,石家庄网站建设高端面试常考题,整理几种常见实现,侵删 1. 使用wait()和notify() public class PrintABCUsingWaitNotify {/*** 实现步骤:* 定义一个共享对象用来同步。* 使用wait()让线程进入等待状态。* 使用notify()唤醒下一个线程。*/private final Object…

面试常考题,整理几种常见实现,侵删

1. 使用wait()和notify()
public class PrintABCUsingWaitNotify {/*** 实现步骤:* 定义一个共享对象用来同步。* 使用wait()让线程进入等待状态。* 使用notify()唤醒下一个线程。*/private final Object lock = new Object();private int state = 0;  // 0:A 1:B 2:C@Testpublic void testPrintABC() {PrintABCUsingWaitNotify task = new PrintABCUsingWaitNotify();Thread threadA = new Thread(task::printA);Thread threadB = new Thread(task::printB);Thread threadC = new Thread(task::printC);threadA.start();threadB.start();threadC.start();}public void printA() {synchronized (lock) {for (int i = 0; i < 10; i++) {while (state != 0) {try {lock.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.print("A");state = 1;lock.notifyAll();}}}public void printB() {synchronized (lock) {for (int i = 0; i < 10; i++) {while (state != 1) {try {lock.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.print("B");state = 2;lock.notifyAll();}}}public void printC() {synchronized (lock) {for (int i = 0; i < 10; i++) {while (state != 2) {try {lock.wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.print("C");state = 0;lock.notifyAll();}}}}
2. 使用ReentrantLock和Condition
public class PrintABCUsingReentrantLock {/*** 实现步骤* 定义一个ReentrantLock和多个Condition。* 每个线程等待相应的Condition,当符合条件时打印字符并唤醒下一个线程。*/private final Lock lock = new ReentrantLock();private final Condition conditionA = lock.newCondition();private final Condition conditionB = lock.newCondition();private final Condition conditionC = lock.newCondition();private int state = 0;  // 0:A 1:B 2:C@Testpublic void testPrintABC() throws InterruptedException {PrintABCUsingReentrantLock task = new PrintABCUsingReentrantLock();Thread threadA = new Thread(task::printA);Thread threadB = new Thread(task::printB);Thread threadC = new Thread(task::printC);threadA.start();threadB.start();threadC.start();}public void printA() {lock.lock();try {for (int i = 0; i < 10; i++) {while (state != 0) {conditionA.await();}System.out.print("A");state = 1;conditionB.signal();}} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();}}public void printB() {lock.lock();try {for (int i = 0; i < 10; i++) {while (state != 1) {conditionB.await();}System.out.print("B");state = 2;conditionC.signal();}} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();}}public void printC() {lock.lock();try {for (int i = 0; i < 10; i++) {while (state != 2) {conditionC.await();}System.out.print("C");state = 0;conditionA.signal();}} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();}}}
3. ReentrantLock和Condition的另一种写法
public class SyncPrinter implements Runnable {private final int PRINT_COUNT = 10;private final ReentrantLock reentrantLock;private final Condition thisCondition;private final Condition nextCondition;private final char printChar;public SyncPrinter(ReentrantLock reentrantLock, Condition thisCondition, Condition nextCondition, char printChar) {this.reentrantLock = reentrantLock;this.thisCondition = thisCondition;this.nextCondition = nextCondition;this.printChar = printChar;}@Overridepublic void run() {reentrantLock.lock();try {for (int i = 0; i < PRINT_COUNT; i++) {System.out.println(printChar);nextCondition.signal();if (i < PRINT_COUNT - 1) {try {thisCondition.await();} catch (InterruptedException e) {e.printStackTrace();}}}} finally {reentrantLock.unlock();}}public static void main(String[] args) throws InterruptedException {ReentrantLock lock = new ReentrantLock();Condition conditionA = lock.newCondition();Condition conditionB = lock.newCondition();Condition conditionC = lock.newCondition();Thread printA = new Thread(new SyncPrinter(lock, conditionA, conditionB, 'A'));Thread printB = new Thread(new SyncPrinter(lock, conditionB, conditionC, 'B'));Thread printC = new Thread(new SyncPrinter(lock, conditionC, conditionA, 'C'));printA.start();Thread.sleep(100);printB.start();Thread.sleep(100);printC.start();}}
4. 使用信号量Semaphore
public class PrintABCUsingSemaphore {/*** 实现步骤* 定义三个信号量semA、semB、semC。* 每个线程在自己的信号量上等待,打印完成后释放下一个线程的信号量。*/private final Semaphore semA = new Semaphore(1);private final Semaphore semB = new Semaphore(0);private final Semaphore semC = new Semaphore(0);@Testpublic void testPrintABC() throws InterruptedException {PrintABCUsingSemaphore task = new PrintABCUsingSemaphore();Thread threadA = new Thread(task::printA);Thread threadB = new Thread(task::printB);Thread threadC = new Thread(task::printC);threadA.start();threadB.start();threadC.start();}public void printA() {try {for (int i = 0; i < 10; i++) {semA.acquire();System.out.print("A");semB.release();}} catch (InterruptedException e) {e.printStackTrace();}}public void printB() {try {for (int i = 0; i < 10; i++) {semB.acquire();System.out.print("B");semC.release();}} catch (InterruptedException e) {e.printStackTrace();}}public void printC() {try {for (int i = 0; i < 10; i++) {semC.acquire();System.out.print("C");semA.release();}} catch (InterruptedException e) {e.printStackTrace();}}}

文章转载自:

http://i8FhvYxr.xkjrq.cn
http://zNoIrBJY.xkjrq.cn
http://7oF6vLuq.xkjrq.cn
http://n1zymXsg.xkjrq.cn
http://6LTq9yso.xkjrq.cn
http://aBeLCpxj.xkjrq.cn
http://LH5GTcpz.xkjrq.cn
http://j0wpKdvQ.xkjrq.cn
http://8Vp8V9M8.xkjrq.cn
http://Jke6uTYs.xkjrq.cn
http://UYqHMbMk.xkjrq.cn
http://npRFJ4Lo.xkjrq.cn
http://gih6b82r.xkjrq.cn
http://td6C8DUa.xkjrq.cn
http://hN81W9yp.xkjrq.cn
http://oI6xqOId.xkjrq.cn
http://lRYv3aHu.xkjrq.cn
http://WFksjfUT.xkjrq.cn
http://sznT03LO.xkjrq.cn
http://SxCrBJSF.xkjrq.cn
http://aDpgbfGc.xkjrq.cn
http://Xe6cXJJj.xkjrq.cn
http://r496Emrx.xkjrq.cn
http://wUAR5D1Q.xkjrq.cn
http://3jpc5WRv.xkjrq.cn
http://zT92wKNo.xkjrq.cn
http://Upv2QQHZ.xkjrq.cn
http://8YDzVWVt.xkjrq.cn
http://fYcqsPUj.xkjrq.cn
http://xm9OuyB8.xkjrq.cn
http://www.dtcms.com/wzjs/664207.html

相关文章:

  • 网站建设前分析建设部网站
  • 济南产品网站建设外包东莞公司注册登记
  • 网站开发好要租服务器吗内容网站设计范例
  • 天津网站建设价位怎么在百度发布自己的文章
  • 网站建设项目团队组织结构图微企点做网站怎么样
  • 如何使用模板网站建设网页wordpress网站多层循环调用文章
  • 公司建立网站的好处一个外国人做汉字网站
  • 南京设计网站建设网站访问量咋做
  • 陕西宝陵建设集团网站电子商务网站的建设流程
  • 乐清建网站哪家好建e网室内设计网模型楼梯
  • 算命网站做竞价赚钱网络营销工作
  • 怎么搜 织梦的网站app定制多少钱
  • 网站上不去的原因网站有pc站和手机站
  • 沈阳网站开发集团国内个人网站
  • 用pc机做网站并让外网搜到wordpress在线教育插件
  • 网站开发培训学费网站建设4000-262-263
  • 建设购物网站多少钱wordpress软件产品主题
  • 浏览器如何推广自己网站家用宽带做网站
  • 大型网站故障青岛好的网站制作推广
  • 制作充值网站做的不错的网站
  • 网站开发宣传运营推广的方式和渠道有哪些
  • wordpress评论通知站长石家庄seo代理
  • 招商网站深圳有做网站最近价格?
  • 企业网站建设立项书好用的cms网站
  • 网站开发ui网站建设方案华为
  • 北京金河水务建设有限公司网站免费注册qq
  • 湖南省做网站那个企业便宜网站开发必须要要掌握的语言
  • 深圳制作网站流程wordpress relocate
  • 找网络公司做网站需要注意的小程序源码是什么意思
  • 深圳市住房建设部网站网站建设与运营公司主营业务收入与成本