![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
文章平均质量分 58
qq_41550511
终身学习~
展开
-
volatile
volatilevolatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性指的是当一个线程修改一个共享变量时,另外一个线程能够读到这个修改的值。由于它不会引起线程上下文的切换和调度,因此恰当地使用volatile会比synchronized的使用和执行成本更低。volatile的定义Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致性地更新,线程应该确保通过排他锁单独获得这个变量。volatile如何保证可见性?有volatile修饰原创 2021-11-12 21:51:37 · 391 阅读 · 0 评论 -
多线程面试题总结
1.如何查看线程死锁1.通过jstack命令查看,jstack命令主要用于调试java程序运行过程中的线程堆栈问题,可以用于检测死锁。2.当两个线程去操作数据库时,数据库发生了死锁,这时可以查询数据库的死锁情况。//1.查询是否锁表show OPEN TABLES where In_use > 0;//2.查询进程show processlist;//3.查看正在锁的事务select * from INFOMATION_SCHEMA.INNODB_LOCKS;//4.查看等待锁的原创 2021-10-29 17:20:29 · 84 阅读 · 0 评论 -
线程池及参数
线程池及参数线程池定义提前创建好若干个可执行的线程放到一个线程池中,需要的时候从线程池中获取线程,不需要自行创建,使用完毕后不销毁线程并将这个线程放回到线程池中。可以避免频繁创建销毁、实现重复利用。类似于生活中的公共交通工具。提高响应速度(减少创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理(参数)Executors工具类–创建线程池的静态工厂方法newSingleThreadExecutor:创建一个单线程的线程池。这个线程池中只有一个线程在工原创 2021-10-13 18:13:16 · 82 阅读 · 0 评论 -
创建线程的方式
创建线程的方式1.继承Thread类1.创建一个继承于Thread类的子类,2.重写Thread类的run()方法。这个run()方法的方法体代表了线程需要完成的任务,run()方法称为线程执行体。2.创建Thread类的子类,即创建了线程对象。3.调用线程对象的start()方法来启动该线程:①启动线程;②调用当前线程的run()方法。2.实现Runnable接口java.lang.Runnable -->不需要继承Thread类,只需要重写run方法就可以1.创建一个实现Ru原创 2021-10-13 08:00:19 · 31 阅读 · 0 评论