摘要: Java-多线程-线程安全-同步代码块 在多个线程都在争抢公共资源的时候,可能会出现抢到公共资源后,还没有完成所有操作就被其他线程抢走了,这可能导致程序运行结果不符合我们的意愿的情况 例如示例所示,在没有加同步代码块的时候,可能出现买到重复的票或者买到第0、-1张票的情况 为了解决线程安全的问题,可 阅读全文
posted @ 2021-01-17 21:28 殃奕 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 线程的生命周期 在线程的整个执行过程中,总共可以分为5个周期 分别为新生状态、就绪状态、运行状态、阻塞状态、死亡状态 阅读全文
posted @ 2021-01-17 20:57 殃奕 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-stop方法 见名知意,stop方法就是直接停止掉当前线程的方法 示例 public class Test01 { // 这是main方法,实现程序主要逻辑 public static void main(String[] args) { for (int i = 1; i <=1 阅读全文
posted @ 2021-01-17 20:52 殃奕 阅读(328) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-伴随线程 setDaemon方法可以将子线程设置为主线程的伴随线程 意思就是当主线程运行结束之后,不管子线程是否运行完毕,都直接将子线程强制结束掉 示例: public class TestThread implements Runnable{ @Override public v 阅读全文
posted @ 2021-01-17 20:45 殃奕 阅读(70) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-sleep方法 Thread的sleep方法,可以认为得制造线程的阻塞,阻塞的时间就是传入的参数的时长,单位为毫秒 示例: public class Test02 { // 这是main方法,实现程序主要逻辑 public static void main(String[] arg 阅读全文
posted @ 2021-01-17 20:17 殃奕 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-join方法 在Java中,如果一个线程调用了join方法,那么这个线程就会被优先执行,该线程执行结束之后,才执行其他的线程 ==注意:==必须要调用了start方法之后,才能调用join方法,不然会出错 示例 public class TestThread implements 阅读全文
posted @ 2021-01-17 20:15 殃奕 阅读(125) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-线程的优先级 不同的线程之间,可以有不同的优先级 但是也不能保证高优先级就百分之百被优先CPU执行 只是说高优先级的线程被CPU先执行的几率大 Java中线程的优先级为1-10 线程默认的优先级都是5 /** * The minimum priority that a thread 阅读全文
posted @ 2021-01-17 19:00 殃奕 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-三种创建线程的方式优缺点对比 继承Thread类的方式创建线程 优点: 方便实现,代码简单 缺点: 必须重写run方法 run方法不能有返回值 run方法不能抛出异常 Java的单继承特性,一个类继承了Thread之后就不能再继承自其它类了 资源之间共享的时候,变量必须使用stat 阅读全文
posted @ 2021-01-17 16:37 殃奕 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-实现Callable接口创建线程类 不论是继承自Thread类创建的线程,还是实现Runnable接口创建的线程,都必须重写run方法,但是run方法有两个缺点 不能有返回值 不能抛出异常 所以JDK1.5之后,又有了实现Callable接口创建线程对象的方法 实现Callable 阅读全文
posted @ 2021-01-17 16:01 殃奕 阅读(108) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-实现Runnable接口创建线程类 在Java中,创建子线程的一种方式就是让一个类实现Runnable接口 一个类在实现了Runnable之后,还必须要重写run方法,实现的业务逻辑必须写在run方法中才能创建子线程 通过实现Runnable接口创建的子线程对象没有start方法, 阅读全文
posted @ 2021-01-17 15:27 殃奕 阅读(251) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-给线程命名 在Java中,通过继承Thread创建的线程,有以下两种方式可以给线程命名; 通过构造器命名 因为线程类继承自Thread类,所有也继承了Thread的name属性,可以通过super的方法调用父类构造器,将name传给构造器完成线程的命名 public class T 阅读全文
posted @ 2021-01-17 14:59 殃奕 阅读(703) 评论(0) 推荐(0) 编辑
摘要: Java-多线程-继承Thread类创建线程 在Java中,创建子线程的一种方式就是让一个类继承Thread类 一个类在继承自Thread之后,还必须要重写run方法,实现的业务逻辑必须写在run方法中才能创建子线程 创建的子线程对象不能直接调用run方法,直接调用run方法,实际上是将run方法当 阅读全文
posted @ 2021-01-17 13:32 殃奕 阅读(220) 评论(0) 推荐(0) 编辑