Java多线程编程
柚子爱上花
这个作者很懒,什么都没留下…
展开
-
Java多线程-基础
java实现多线程的方式继承Thread类实现Runnable接口线程共享数据重写Thread实现public class MyThread extends Thread { private int count=5; @Override public void run() { super.run(); while(co...转载 2018-03-25 10:31:10 · 174 阅读 · 0 评论 -
Java多线程-变量并发访问
synchronized同步方法非线程安全:多个线程堆同一个对象的实例变量进行并发访问时,产生“脏读”,取到的数据是被更改过的。 线程安全:获取实例变量时,经过同步处理。“非线程安全”的问题在于“实例变量”中,方法内部的私有变量是不会有“非线程安全”问题的。多个线程共同访问1个实例变量,则可能出现“非线程安全”的问题。处理方式是在方法前加synchronized,让方法变成同步的方法...转载 2018-03-25 17:25:04 · 1416 阅读 · 0 评论 -
Java多线程-定时器Timer
Timer执行不结束public class MyTask extends TimerTask { public void run() { System.out.println("运行了代码"); }}//延迟5000毫秒后执行Timer timer=new Timer();timer.schedule(new MyTask(),5000);我...转载 2018-03-26 21:56:01 · 351 阅读 · 0 评论 -
Java多线程-补充
线程的状态Thread.State枚举//线程实例化后没有执行start()NEW//线程进入运行的状态RUNNABLE//等待锁的时候BLOCKED//线程执行了Object.wait()方法后所处的状态WAITING//线程执行了Thread.sleep,等待状态TIMED_WAITING//线程被销毁的状态TERMINATED线程组可以...转载 2018-03-27 22:32:31 · 172 阅读 · 0 评论 -
Java多线程-Lock
ReentrantLockReentrantLock可以和synchronized达到一样的效果,并且扩展功能上也更加强大,而且使用更加灵活。 Lock lock=new ReentrantLock(); //加锁 lock.lock(); //取消锁 lock.unlock();等待通知模式: synchron...转载 2018-03-28 16:39:21 · 341 阅读 · 0 评论 -
Java多线程-线程通信ThreadLocal
等待通知wait() wait()将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止执行,直到接到通知或被中断。在调用wait()前,线程必须获得该对象的对象级别锁,即只能在同步方法或者同步块中调用wait(),在执行wait()后,当前线程释放锁。在从wait()返回前,线程与其他线程竞争重新获取锁。如果调用wait()没有持有适当的锁,则抛出异常。 notify() ...转载 2018-03-29 11:23:50 · 370 阅读 · 0 评论