java多线程
文章平均质量分 61
西楚小羽的窝窝
奔跑吧,程序猿
展开
-
线程之消费者和生产者问题代码
最近复习了一下线程,发现运行消费者和生产者代码部分时,总会出现先消费 后生产。 源码如下: public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); Produ原创 2015-02-26 12:04:14 · 667 阅读 · 0 评论 -
Runnable和Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread exten原创 2015-02-26 10:40:44 · 690 阅读 · 0 评论 -
线程池的原理及实现
多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四个基本组成部原创 2015-02-26 13:56:26 · 660 阅读 · 0 评论 -
java死锁实例
在实际编程中,要尽量避免出现死锁的情况,但是让你故意写一个死锁的程序时似乎也不太简单,以下是一个简单的死锁例子。 package dhp.test1; /** * * @author 邓海波 * 当类的对象flag=1时(T1),先锁定O1,睡眠500毫秒,然后锁定O2; * 而T1在睡眠的时候另一个flag=0的对象(T2)线程启动,先锁定O2,睡眠500毫秒,等待T1释放O1;原创 2015-02-26 11:11:50 · 822 阅读 · 0 评论 -
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的。 我们来看一个例子: package dhp.test1; public class TT implements Runnable { int b = 100; public synchronized void m1(){ b = 10000;原创 2015-02-26 11:31:23 · 626 阅读 · 0 评论