最赞回答 / 慕斯卡3197864
run()方法只是一个普通方法,调用run()的话就相当于一个普通方法调用,并没有实现多线程。而start()方法才是真正启动线程的方法。调用start()后,此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,run()方法运行结束,此线程随即终止。
2018-05-23
最赞回答 / TendeRess
//内部类的话要用主类的实例去new一个内部类的实例对象,比如Actress actress = new Actor().new Actress(); Thread actressThread = new Thread(actress,"Ms.Runnable"); actressThread.start();//这样就行了~<...code...>
2018-05-21
最赞回答 / no4990
这篇文章说得很清楚了。当前的线程阻塞,等待调用join()的线程执行。当前的线程可以是 “调用了join()的线程之外的任意线程”。java中的Thread类的joinjoin是Thread的实例方法,官方解释为:等待该线程终止。其作用就是将调用join的线程优先执行,当前正在执行的线程阻塞,直到调用join方法的线程执行完毕或者被打断,主要用于线程之间的交互。还有两个重载的方法:1、join(long millis),等待该线程终止的时间最长为 millis 毫秒。为 0 意味着要一直等下去。2、joi...
2018-04-23
已采纳回答 / 泰勒伯顿
这里存在一个概念性问题:工作内存 和 主内存线程操作数据时:会将主内存中的数值read -&一个图load 到工作内存中线程操作完成后:工作内存中的数据 store -&:线程write 到主内存中<...图片...>这里画...
2018-04-18
已采纳回答 / 浩瀚银汉
第一个问题:并发时的时刻其实指的是某个很短的时间,当系统只有一个内核时,系统在某个时刻确实只能执行一个线程,大多数系统都用的是时间片轮换算法,就是多个进程在分配到的极短时间...
2018-03-01
最新回答 / Destiny_Ly
nong.keepRunning=false的时候,农名的线程还在while里面执行for循环,所以才会输出for循环剩余的2,3,4,5.等到下一次做while判断的时候,发现keepRunning标志为false了,才会结束线程。如果想把程咬金结束战争的字幕打印到最后,可以sleep一下主线程,或者调用sui和nong线程的join()方法。
2018-01-26
最新回答 / 慕仰6539668
你把 第二个类写到第一个类里面了public class XXX{class XXX{}} 这个错误public class XXX{}class XXX{} 这个正确
2018-01-23