摘要:
死锁就是在程序当中出现了 锁的嵌套,外面一个锁,里面一个锁,就形成了死锁 死锁不是一个知识点,而是一个错误 阅读全文
posted @ 2023-10-27 21:24
1stzz1
阅读(17)
评论(0)
推荐(0)
摘要:
代码示例: package pojo;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Ticket extends Thread{ public s 阅读全文
posted @ 2023-10-27 21:12
1stzz1
阅读(42)
评论(0)
推荐(0)
摘要:
同步代码块 就是 把一段代码给锁起来,这样就可以解决多线程操作共享数据时带来的数据安全问题 但是如果我们想要把一个方法里面所有的代码全都锁起来,就没有必要用同步代码块了,我们可以直接把 synchronized 加在方法上,这个方法就叫做同步方法 同步方法的格式: 修饰符 synchronized 阅读全文
posted @ 2023-10-27 20:26
1stzz1
阅读(59)
评论(0)
推荐(0)
摘要:
同步代码块: 利用同步代码块把操作共享数据的代码给锁起来,让同步代码块里面的代码是轮流去执行的 格式: synchronized (锁对象) { 操作共享数据的代码 } 细节: 1. 在最初,锁的状态是默认打开的,如果有一个线程进去了,锁就会自动关闭 2. 当锁里面全部代码都执行完毕了,线程出来了, 阅读全文
posted @ 2023-10-27 19:45
1stzz1
阅读(90)
评论(0)
推荐(0)
摘要:
1. 当创建线程对象的时候,是新建状态 2. 新建完之后 调用 start()方法 就变成了就绪状态(是在调用完了 start() 方法之后才变成了就绪状态)。在就绪状态下,线程开始抢夺 CPU 的执行权。注意是正在抢,还没有抢到,没抢到就无法执行代码。所以就绪状态 有执行资格,但没有执行权(有执行 阅读全文
posted @ 2023-10-27 18:47
1stzz1
阅读(29)
评论(0)
推荐(0)
摘要:
Java 中线程的优先级 最小是 1,最大是 10,默认是 5;优先级越大,抢占到 CPU 的概率越高 String getName()、void setName (String name): 如果我们没有给线程设置名字,线程的默认名字是 Thread-序号,序号是从 0 开始的,例如:Thread 阅读全文
posted @ 2023-10-27 16:53
1stzz1
阅读(26)
评论(0)
推荐(0)
摘要:
继承Thread类 和 实现Runnable接口 的这两种方式 无法获取到多线程的结果 实现Callable接口 的方式 可以获取到多线程运行的结果 阅读全文
posted @ 2023-10-27 16:15
1stzz1
阅读(19)
评论(0)
推荐(0)
摘要:
利用 Callable 接口 和 Future 接口方式实现:这种实现方式可以获取到多线程运行的结果 步骤: 1. 创建一个类,类名比如叫 MyCallable,并实现 Callable 接口 注:Callable 接口有一个泛型,因为这种方式可以获取到多线程运行的结果,泛型就表示结果的类型 2. 阅读全文
posted @ 2023-10-27 16:10
1stzz1
阅读(109)
评论(0)
推荐(0)
摘要:
实现 Runnable 接口的方式进行实现: 1. 定义一个类 实现 Runnable 接口,并实现 run 方法 2. 在 run 方法里面书写该线程要执行的代码 3. 然后创建这个 实现 Runnable 接口的类的实例化对象,这个对象其实就表示 多线程要执行的任务 4. 再去创建一个 Thre 阅读全文
posted @ 2023-10-27 15:42
1stzz1
阅读(173)
评论(0)
推荐(0)
摘要:
多线程的三种实现方式: 1. 继承 Thread 类的方式进行实现 2. 实现 Runnable 接口的方式进行实现 3. 利用 Callable 接口 和 Future 接口方式实现 一、继承 Thread 类的方式: 将类声明为 Thread 的子类,该子类应重写 Thread 类的 run 方 阅读全文
posted @ 2023-10-27 15:01
1stzz1
阅读(130)
评论(0)
推荐(0)
浙公网安备 33010602011771号