随笔分类 - java并发编程
摘要:输出结果: 对以上代码的解释: 在main方法中,main为主线程,当主线程执行完输出语句时,cpu被second-thread和first-thread抢去执行了,当main主线程再次抢的cpu执行时,发现main方法中已经没有需要执行的代码,故main方法结束。然后,由于second-threa
阅读全文
摘要:1.线程有默认名称: 输出结果: 2.自定义线程名称 输出结果:
阅读全文
摘要:运行结果: first-thread并没有立即被中断! 再看一个例子: 运行结果: first-thread线程被中断了! 再看一个例子: 输出结果: 以上输出说明,first-thread也正常的结束了。 总结: 调用interrupt()方法,立刻改变的是中断状态,但如果不是在阻塞态,就不会抛出
阅读全文
摘要:wait和notify都是针对某个线程而言的: 运行,发现报错如下: 原因:调用wait和notify以及notifyAll,它其实是要跟一个同步监视器的。而且同步监视器所指定的对象必须是当前类的实例。修改代码如下: 运行结果如下: 总结: 首先,自定义线程执行代码还是主线程执行代码,这个是看哪个线
阅读全文
摘要:sleep:超时等待指定时间,时间到了之后,重新回到就绪状态,抢到CPU资源后,立马进入运行状态; 注意:sleep方法要try catch异常,否则不通过。通过加入sleep,可以明显感觉到,每次输出都有一定的时间间隔;
阅读全文
摘要:1.start状态: 2.:线程启动后,进入就绪状态,自定义线程和主线程交互运行,谁先获得cpu,则谁就进入运行状态,输出对应的消息。 运行结果:自定义线程运行了(连续输出一段时间);主线程运行了(连续输出一段时间);自定义线程运行了(连续输出一段时间);主线程运行了(连续输出一段时间)......
阅读全文
摘要:线程的状态图: 1. 新建( new ):新创建了一个线程对象。 2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。 3. 运行( runnin
阅读全文

浙公网安备 33010602011771号