摘要:
什么时线程池? 线程池是指在初始化一个多线程应用程序中创建的一个线程集合,然后在执行新的任务的时重用这些线程而不是重新创建一个线程,线程池中的线程数量完全取决于可用内存数量和运用程序的需求,然而增加可用线程数是可能的,线程池中每一个线程都有分配一个任务,一旦任务执行完后,会回到池子中并等待下一次的任 阅读全文
摘要:
总结 Java内存模型简称jmm,定义了一个线程对另一个线程可见,共享变量存放在主内存中,每一个线程都有自己本地内存,当多个线程同时访问一个数据是,可能本地内存没有及时刷新到主内存,所以就会发生线程安全问题 阅读全文
摘要:
ThreadLoca 提高一个线程的局部变量,访问某个线程都有自己的局部变量,当使用ThreadLoca为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立的改变自己的副本,二不会影响到其它线程对应的副本 package com.jlong; class Res{ ThreadLoca 阅读全文
摘要:
原子性、可见性、有序性 原子性:即一个操作或多个操作要么全部执行并且执行过程中不被任何因素打断,要么就不执行 原子性其实就是保证数据一致,线程安全的一部分 可见性:当多个线程同时访问一个变量时,一个线程修改了这个变量的值,其它线程能立即看得到它修改的值,volatile关键字解决线程之间的可见性,强 阅读全文
摘要:
Java中有两种线程,一种是用户线程,另一种是守护线程。 当进程不存在或主线程停止,守护线程也会被停止。 使用setDaemon(true)方法设置为守护线程 ** * * 什么是守护线程? 守护线程 进程线程(主线程挂了) 守护线程也会被自动销毁. * * @classDesc: 功能描述:(守护 阅读全文
摘要:
中断: 线程实例.interrupt(); lock锁的使用 package com.jlong; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti 阅读全文
摘要:
什么是多线程的通讯? 多线程之间的通讯,其实就是多个线程同时去操作同一个资源,但是操作动作不同 package com.jlong; class User { public String name; public String sex; public boolean flag=false; } cl 阅读全文
摘要:
死锁:同步锁中嵌套同步锁,导致锁无法释放 package com.jlong; class ThreadTrain4 implements Runnable { private static int count = 100; public Object object = new Object(); 阅读全文
摘要:
同步锁:synchronized,(缺点:不能手动开锁 解锁) 1.同步代码块 public void run(){ synchronized(this){/使用this关键字表示同一把锁,非静态情况下, 静态方法使用当前类名 .class //会发生线程安全问题的代码 } } 2.同步函数 pub 阅读全文
摘要:
线程与进程的区别:进程是所有线程的集合,每一个线程是进程中的一条执行路径 多线程的好处:提高程序效率 创建线程的两种方法:1.继承Thread类重写 run()方法 ,2.实现Runnable接口重写run()方法,匿名内部类 第二种方法比较好,继承只能单继承,而实现可以多实现 1.继承Thread 阅读全文