摘要: 线程同部 synchronized关键字的作用域有二种: 1)是某个对象实例内,synchronized aMethod(){} 可以防止多个线程同时访问这个对象的synchronized方法 (如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法 阅读全文
posted @ 2019-05-02 22:19 MrChengs 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1、线程的优先级 Thread类提供了获取和设置线程优先级的方法getPriority:获取当前线程的优先级setPriority:设置当前线程的优先级Java语言为线程类设置了10个优先级,分别使用1~10内的整数表示 ,整数值越大代表优先级越高。 每个线程都有一个默认的优先级,主线程的默认优先级 阅读全文
posted @ 2019-05-02 18:48 MrChengs 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 线程状态转换的图解: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。 该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 3、运行状态(Running):就绪状态的线程获取了CPU,执行程 阅读全文
posted @ 2019-05-02 18:36 MrChengs 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 创建线程的4中方式: 1、继承Thread类或者创建线程类 2、通过实现Runable接口创建线程类 3、通过Callable接口 https://www.cnblogs.com/Mrchengs/p/10793688.html 4、通过线程池创建线程 https://www.cnblogs.com 阅读全文
posted @ 2019-05-02 18:27 MrChengs 阅读(762) 评论(0) 推荐(0) 编辑
摘要: ForkJoinPool 分支/合并框架 工作窃取 Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总 Fork/Join 框架与线程池的区别  采用 “工作窃 阅读全文
posted @ 2019-05-02 17:52 MrChengs 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 线程池  第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之 一执行每个提交的任务,通常使用 Executors 工厂方法配置。  线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在 执行大量异步任务时提供增强的性能,并且还可以提供 阅读全文
posted @ 2019-05-02 17:39 MrChengs 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 线程八锁 • 一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用 其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻 内,只能有唯一一个线程去访问这些synchronized方法 • 锁的是当前对象this,被锁定后,其它的线程都不 阅读全文
posted @ 2019-05-02 15:20 MrChengs 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 读-写锁 ReadWriteLock  ReadWriteLock 维护了一对相关的锁,一个用于只读操作, 另一个用于写入操作。只要没有 writer,读取锁可以由 多个 reader 线程同时保持。写入锁是独占的。。 ReadWriteLock 读取操作通常不会改变共享资源,但执行 写入操作时 阅读全文
posted @ 2019-05-02 14:28 MrChengs 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 线程按序交替 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归 测试类中: 测试结果: 阅读全文
posted @ 2019-05-02 12:28 MrChengs 阅读(232) 评论(0) 推荐(0) 编辑