![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程
小非肥
写博客的小傻瓜
展开
-
三种线程的实现方式
文章目录主方法1.继承Thread类的方式2.实现Runnbale类的方式3.实现Callable类的方式4.三种显现方式的区别主方法public class Demo { public static void main(String[] args) { //1.继承Thread的方法 MyThread myThread = new MyThread(); myThread.start(); //2.实现Runnable的方原创 2020-11-03 16:26:24 · 136 阅读 · 0 评论 -
图解线程的生命周期,结合现实理解
线程的生命周期1.新建:当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。Thread thread = new Thread();2.就绪线程已经被启动,并不代表run()方法就被立即执行。这时正在等待被分配给CPU,也就是说此时线程正在就绪队列中等候得到CPU资源。thread.start();3.运行线程获得CPU资源正在执行任务执行run()方法,此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到死亡。run()4.阻塞由于某原创 2020-07-04 21:53:29 · 123 阅读 · 0 评论 -
线程池的使用
**线程池的使用**可运行的线程最多有一个ExecutorService threadPool = Executors.newSingleThreadExecutor();可运行的线程个数按设置的来ExecutorService threadPool = Executors.newFixedThreadPool(5);创建一个可缓存线程池,如果线程池长度超过运行线程个数,可灵活回收空闲线程,若线程池长度不足,则新建线程。ExecutorService threadPool = Executo原创 2020-06-21 16:50:55 · 101 阅读 · 0 评论 -
读写锁的理解
读《java多线程编程核心技术》做笔记文章目录读写锁1.ReentrantLock类的缺点2.ReentrantReadWriteLock类的使用1.ReentrantReadWriteLock类的使用--读读共享2.ReentrantReadWriteLock类的使用--写写互斥3.ReentrantReadWriteLock类的使用--读写互斥4.ReentrantReadWriteLock类的使用--写读互斥验证代码链接: 百度 改为 baidu链接:https://pan.原创 2020-09-15 19:26:21 · 273 阅读 · 0 评论 -
synchronized的使用及特性
读java多线程编程核心技术做的笔记以便于以后理解文章目录1.synchronized的使用方法1.1synchronized修饰方法同步方法的弊端1.2synchronized修饰代码块1.3 静态synchronized方法和synchronized(class)代码块2.synchronized方法的特性2.1锁重入2.2锁重入支持继承环境2.3出现异常锁自动释放2.4重写方法不使用synchronized代码链接:链接:https://pan.baidu.com/s/11hr9Grzg61nU原创 2020-09-14 14:32:52 · 190 阅读 · 0 评论 -
多线程访问方法内的变量安全,访问实例变量线程不安全
阅读java多线程编程核心技术的理解,特意记录下来。以便以后复习。非线程安全问题会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是脏读。也就是读到的数据实际上是被更改过的。1. 方法内部声明一个变量,是不存在非线程安全问题的。被测试的类/* @author hhf @date 2020/8/5-8:23*///在一个方法内部声明变量,并不存在非线程安全问题public class HasSelfPrivateNum { public void a原创 2020-09-03 20:09:29 · 767 阅读 · 0 评论