Java多线程
泡椒酱的java学习记录
Java、大数据
展开
-
Java多线程学习--07
说明:参考《Java多线程核心技术》13、volatile关键字volatile关键字的作用:使变量在多个线程之间可见。如果不是在在多继承的情况下,使用继承Thread和实现Runnable接口没有多大的区别。但是一旦出现多继承的情况,则用实现Runnable的方式处理多线程是个很有必要的。public class PrintString implements Runnable{ ...原创 2019-01-10 20:50:19 · 143 阅读 · 0 评论 -
Java多线程学习--03
说明:参考《Java多线程核心技术》7、线程的优先级源码: public final void setPriority(int newPriority) { // this thread's thread group. ThreadGroup g; // if the current thread is allowed to access this ...原创 2019-01-10 01:28:26 · 71 阅读 · 0 评论 -
Java多线程学习--02
说明:参考《Java多线程核心技术》4、基本概念currentThread():可以返回代码段正在被那个线程调用的信息isAlive():判断当前的线程是否处于活动状态sleep():在指定的毫秒数内让当前"正在执行的线程"休眠Runnable runnable = new Runnable01();Thread thread = new Thread(runnable);Threa...原创 2019-01-10 01:18:59 · 94 阅读 · 0 评论 -
Java多线程技能--01
1、区分进程和线程进程:进程是操作系统结构的基础,是一次程序的进行,简单理解为OS中运行的exe程序。线程:进程中独立运行的子任务。可能一个进程中有许多的子任务,这些任务可以同时运行。比如:你在微信视频聊天的同时,可以给另一个人发微信表情。2、继承Thread类public class ThreadTest01 { public static void main(String[] ...原创 2019-01-10 01:09:02 · 97 阅读 · 0 评论 -
Java多线程学习--15
说明:参考《Java多线程核心技术》4、单例模式1、双检测机制的延迟加载单例模式public class DCLSingleton { private volatile static ThreadA threadA; public DCLSingleton() { } // 使用双检测机制来解决问题,既保证不需要同步代码的异步执行,又保证了单例的特性 ...原创 2019-01-11 00:43:17 · 116 阅读 · 0 评论 -
Java多线程学习--14
说明:参考《Java多线程核心技术》10、Timer定时器Time类的主要作用是设置计划任务,但封装任务的类却是TimerTask类,执行计划任务的的代码放入TimerTask的子类中。TimerTask是一个抽象类。1、执行一次某一任务:执行任务的时间晚于当前时间–在未来执行的效果schedule(TimerTask task, Date time):public class MyTa...原创 2019-01-11 00:43:12 · 143 阅读 · 0 评论 -
Java多线程学习--13
说明:参考《Java多线程核心技术》9、ReentrantReadWriteLock1、读读共享:读锁之间不排斥public class ReadShareService { private ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); public void read() { try ...原创 2019-01-11 00:43:05 · 114 阅读 · 0 评论 -
Java多线程学习--12
说明:参考《Java多线程核心技术》8、Condition类Condition类:可以实现多路通知功能,也就是在一个Lock对象里面创建多个Condition(即对象监视器)实例,线程对象可以注册在指定的Condition中,从而可以有选择性的进行线程通知,在调度线程上更加灵活。public class ConditionService { private Lock lock = n...原创 2019-01-11 00:42:59 · 120 阅读 · 0 评论 -
Java多线程学习--11
说明:参考《Java多线程核心技术》7、类ThreadLocal变量值得共享可以使用public static变量的形式,所有的线程都使用同一个public static变量。ThreadLocal类主要解决的是每个线程板绑定自己的值,可以将ThreadLocal类比喻成全局存放数据的盒子,盒子中可以存储每个线程的私有数据。类ThreadLocal解决的是变量在不同线程间的隔离性,也就是不...原创 2019-01-11 00:42:51 · 146 阅读 · 0 评论 -
Java多线程学习--10
说明:参考《Java多线程核心技术》6、join在很多情况下,主线程创建并启动子线程,如果子线程要进行大量的耗时运算,主线程往往将早于子线程结束之前结束,这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就要用到join()方法了。public class JoinThread extends Thread { @Override...原创 2019-01-10 21:26:00 · 105 阅读 · 0 评论 -
Java多线程学习--09
说明:参考《Java多线程核心技术》5、生产者/消费者模式1、一个生产者一个消费者public class MyStack { private List list = new ArrayList(); synchronized public void push() { // push to stack try { if (list...原创 2019-01-10 21:15:34 · 109 阅读 · 0 评论 -
Java多线程学习--08
说明:参考《Java多线程核心技术》3、线程之间的通信1、wait/notify```public class WaitThread extends Thread{ private Object lock; public WaitThread(Object lock) { super(); this.lock = lock; }...原创 2019-01-10 20:57:10 · 122 阅读 · 0 评论 -
Java多线程学习--04
说明:参考《Java多线程核心技术》4、dirtyRead发生脏读情况是在读取变量时,此值已经被其他的线程给修改了。public class DirtyRead extends Thread{ private PublicVaria publicVaria; public DirtyRead(PublicVaria publicVaria) { super()...原创 2019-01-10 01:34:36 · 81 阅读 · 0 评论