怎么学java软件开发-中控考勤机 java 开发
怎么学java软件开发(并发篇)就我个人学习java软件开发(并发篇)的经验来看,关键在于你是如何理解并发的。其实并发一直是语言发展的一个热点话题,那么学java软件开发(并发篇)有什么关键技巧吗?并发有很多种设计模式怎么学java软件开发,今天我们不谈这些大体的东西,只说一点。并发的本质是什么?并发的本质就是更进一步地发挥cpu的性能,那么cpu既然有着众多的核心可供使用,那么在同一时间内不可能线程一个地跑。
举个例子来说,咱们前面没学过编译原理(指令)编译是什么东西,所以我们只是简单的说,在同一时间编译时怎么学java软件开发,每个线程要干完一个指令所需要的工作。当然这个比喻过于简单了,反过来说,编译是完成指令的指令,这完全没有问题。在线程中完成指令的指令,并不等于cpu时间线程是资源的消耗,毕竟线程是用了资源的。看下代码,下面这个可执行文件是这样的:publicclassnext{publicstaticvoidmain(string[]args){thread1(){system.out.println("runing");}thread2(){system.out.println("running");}thread3(){system.out.println("running");}thread4(){system.out.println("running");}thread.sleep(newrunnable(){@overridepublicvoidrun(){thread.currentthread().getname()+"connected!";}});thread.sleep(newrunnable(){@overridepublicvoidrun(){thread.currentthread().getname()+"running";}});thread.sleep(newrunnable(){@overridepublicvoidrun(){thread.currentthread().getname()+"connected!";}});thread.sleep(newrunnable(){@overridepublicvoidrun(){thread.currentthread().getname()+"running";}});}publicstaticvoidmain(string[]args){thread1(){system.out.println("hello");}thread2(){system.out.println("hello");}thread3(){system.out.println("hello");}thread4(){system.out.println("hello");}}看,每个线程都执行完了最初指定的那一句指令,看一下system.out的时间是怎么流过的。
从一开始主线程执行是用了半秒钟,再到后面其他线程执行,其实在主线程执行的前几秒钟,其他的线程都在干什么呢?并不是工作,而是来sleep。在sleep的时候来工作一切都是有条件。