Java-多线程
Java-多线程学习笔记
yy310585
这个作者很懒,什么都没留下…
展开
-
Java-多线程-三种创建线程的方式优缺点对比
Java-多线程-三种创建线程的方式优缺点对比继承Thread类的方式创建线程优点:方便实现,代码简单缺点:必须重写run方法run方法不能有返回值run方法不能抛出异常Java的单继承特性,一个类继承了Thread之后就不能再继承自其它类了资源之间共享的时候,变量必须使用static进行修饰实现Runnable接口的方式创建线程优点:实...原创 2021-01-17 16:37:00 · 276 阅读 · 0 评论 -
Java-多线程-实现Callable接口创建线程类
Java-多线程-实现Callable接口创建线程类不论是继承自Thread类创建的线程,还是实现Runnable接口创建的线程,都必须重写run方法,但是run方法有两个缺点不能有返回值不能抛出异常所以JDK1.5之后,又有了实现Callable接口创建线程对象的方法实现Callable接口,可以不带泛型,如果不带泛型,那么call方法的返回值就是Object类...原创 2021-01-17 16:01:00 · 207 阅读 · 0 评论 -
Java-多线程-实现Runnable接口创建线程类
Java-多线程-实现Runnable接口创建线程类在Java中,创建子线程的一种方式就是让一个类实现Runnable接口一个类在实现了Runnable之后,还必须要重写run方法,实现的业务逻辑必须写在run方法中才能创建子线程通过实现Runnable接口创建的子线程对象没有start方法,想要启动线程,就必须创建Thread对象,并将实现了Runnable接口的类的对象,作为...原创 2021-01-17 15:27:00 · 572 阅读 · 0 评论 -
Java-多线程-线程的优先级
Java-多线程-线程的优先级不同的线程之间,可以有不同的优先级但是也不能保证高优先级就百分之百被优先CPU执行只是说高优先级的线程被CPU先执行的几率大Java中线程的优先级为1-10线程默认的优先级都是5/** * The minimum priority that a thread can have. */ public final st...原创 2021-01-17 19:00:00 · 49 阅读 · 0 评论 -
Java-多线程-线程安全-同步代码块
Java-多线程-线程安全-同步代码块在多个线程都在争抢公共资源的时候,可能会出现抢到公共资源后,还没有完成所有操作就被其他线程抢走了,这可能导致程序运行结果不符合我们的意愿的情况例如示例所示,在没有加同步代码块的时候,可能出现买到重复的票或者买到第0、-1张票的情况为了解决线程安全的问题,可以在可能出现线程危险的地方加上同步代码块,就是使用synchronized(this){...原创 2021-01-17 21:28:00 · 91 阅读 · 0 评论 -
Java-多线程-继承Thread类创建线程
Java-多线程-继承Thread类创建线程在Java中,创建子线程的一种方式就是让一个类继承Thread类一个类在继承自Thread之后,还必须要重写run方法,实现的业务逻辑必须写在run方法中才能创建子线程创建的子线程对象不能直接调用run方法,直接调用run方法,实际上是将run方法当做普通方法来执行要启动子线程必须使用子线程名.start()的方式进行启动示例:...原创 2021-01-17 13:32:00 · 368 阅读 · 0 评论 -
Java-多线程-给线程命名
Java-多线程-给线程命名在Java中,通过继承Thread创建的线程,有以下两种方式可以给线程命名;通过构造器命名因为线程类继承自Thread类,所有也继承了Thread的name属性,可以通过super的方法调用父类构造器,将name传给构造器完成线程的命名public class TestThread extends Thread{// 继承了Thread类之后...原创 2021-01-17 14:59:00 · 3809 阅读 · 0 评论 -
Java-多线程-伴随线程
Java-多线程-伴随线程setDaemon方法可以将子线程设置为主线程的伴随线程意思就是当主线程运行结束之后,不管子线程是否运行完毕,都直接将子线程强制结束掉示例:public class TestThread implements Runnable{ @Override public void run() { for (int i = 1;...原创 2021-01-17 20:45:00 · 574 阅读 · 0 评论 -
Java-多线程-sleep方法
Java-多线程-sleep方法Thread的sleep方法,可以认为得制造线程的阻塞,阻塞的时间就是传入的参数的时长,单位为毫秒示例:public class Test02 { // 这是main方法,实现程序主要逻辑 public static void main(String[] args) { // 定义一个时间格式 ...原创 2021-01-17 20:17:00 · 181 阅读 · 0 评论 -
Java-多线程-stop方法
Java-多线程-stop方法见名知意,stop方法就是直接停止掉当前线程的方法示例public class Test01 { // 这是main方法,实现程序主要逻辑 public static void main(String[] args) { for (int i = 1; i <=100; i++) { /...原创 2021-01-17 20:52:00 · 554 阅读 · 0 评论 -
Java-多线程-join方法
Java-多线程-join方法在Java中,如果一个线程调用了join方法,那么这个线程就会被优先执行,该线程执行结束之后,才执行其他的线程注意:必须要调用了start方法之后,才能调用join方法,不然会出错示例public class TestThread implements Runnable { @Override public void ...原创 2021-01-17 20:15:00 · 76 阅读 · 0 评论 -
线程的生命周期
线程的生命周期在线程的整个执行过程中,总共可以分为5个周期分别为新生状态、就绪状态、运行状态、阻塞状态、死亡状态原创 2021-01-17 20:57:00 · 53 阅读 · 0 评论 -
Java-多线程-Lock锁情况下线程通信
Java-多线程-Lock锁情况下线程通信为了完成Lock锁情况下的线程之间的通信,从JDK1.5开始引入了Condition,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition1的await()、signal()这种方式实现线程间协作更加安全和高效。Condition的优点:...原创 2021-01-21 18:05:00 · 319 阅读 · 0 评论 -
Java-多线程-线程安全-同步方法
Java-多线程-线程安全-同步方法在多个线程都在争抢公共资源的时候,可能会出现抢到公共资源后,还没有完成所有操作就被其他线程抢走了,这可能导致程序运行结果不符合我们的意愿的情况为了解决线程安全的问题,可以在可能出现线程危险的地方整体提取为一个方法,然后使用synchronized修饰该方法,这样这个方法就变成了同步方法,可以解决线程安全问题但是在使用的时候也要注意,在使用同步代...原创 2021-01-19 19:32:00 · 44 阅读 · 0 评论 -
Java-多线程-线程安全小总结
Java-多线程-线程安全小总结什么是线程的安全问题Java的线程安全问题,由于多线程任务中,会出现争抢资源的过程,可能导致共享资源出现问题。即一个线程还没有执行完,另一个线程就又把资源抢走了,这样,前一个线程对公共资源公共操作到一半,还没有完成所有操作,公共资源就可能出现各种误操作一样的问题;为了解决线程之间的安全问题,所以就引入了同步监视器,平常一般也称为“锁”...原创 2021-01-19 22:46:00 · 43 阅读 · 0 评论 -
Java-多线程-线程安全-Lock锁
Java-多线程-线程安全-Lock锁JDK1.5后新增新一代的线程同步方式:Lock锁与采用synchronized相比,lock可提供多种锁方案,更灵活synchronized是Java中的关键字,这个关键字的识别是靠JVM来识别完成的呀。是虚拟机级别的。但是Lock锁是API级别的,提供了相应的接口和对应的实现类,这个方式更灵活,表现出来的性能优于之前的方式。使用注意:...原创 2021-01-19 19:39:00 · 58 阅读 · 0 评论 -
Java-多线程-线程间通信
Java-多线程-线程间通信在Java对象中,有两个池:锁池与等待池锁池:Synchronized,等待池:wait(),notify(),notifyAll()一个线程如果调用了某个对象的wait(),那么,该线程就立即进入带该对象的等待池中(并且将锁释放掉)在未来的某个时刻,另一个线程调用了同一个对象的notify()或者notifyAll()方法,那么在等待池中的...原创 2021-01-20 20:31:00 · 69 阅读 · 0 评论