多线程
半个伪球迷
no pain no gain
展开
-
【Java程序性能优化 第一版】第四章(Future, Master-Worker,Guarded Suspension模式)
第4章 并行程序开发与优化 本章主要介绍基于Java的并行程序开发及其优化方法。对于多核CPU,传统的串行程序已经无法很好发挥CPU的性能。此时,就需要通过使用多线程并行的方式挖掘CPU的潜能。本章涉及的主要知识点有: □常用的多线程设计模式,Future模式,Master-Worker模式,Guarded Sus...原创 2018-09-11 18:01:20 · 393 阅读 · 0 评论 -
【Java多线程编程核心技术】第一章(多线程技能 线程的优先级)
1.8 线程的优先级 在操作系统中,线程可以划分优先级,优先级较高的线程得到的cpu的资源较多,也就是cpu优先执行优先级较高的线程对象中的任务. 在Java中,线程优先级分为1~10个等级,如果小于1大于10,则JDK抛出异常,源码如下: public final void setPriority(int newPriority) { ThreadGroup g...原创 2018-10-08 17:04:26 · 249 阅读 · 2 评论 -
【Java多线程编程核心技术】第一章(多线程技能 currentThread, isAlive,sleep,getId)
Thread类的核心方法较多,读者应该着重掌握如下关键技术点: □线程的启动 □如果使线程暂停 □如何使线程停止 □线程的优先级 □线程安全相关的问题 1.1 进程与多线程的概念及线程的优点 本节主要介绍在Java语言中使用多线程技术。但是讲到多线程不得不提到进程这个概念: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动, 是系统进行资源分配和调度...原创 2018-09-20 22:52:20 · 151 阅读 · 0 评论 -
【Java多线程编程核心技术】第一章(多线程技能)
1.7 停止线程 停止线程是在多线程开发时很重要的技术点.掌握此技术可以对线程的停止进行有效的处理. 停止一个线程可以使用Thread.stop()方法,但是最好不要使用它.这个方法是不安全的.大多数停止一个线程的操作是使用Thread.interrupt(). 1.7.1 停止不了的线程 调用interrupt()方法仅仅是在当前线程中打了一个停止的标记,并不是真的停止...原创 2018-09-26 14:36:59 · 109 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(JDK并发数据结构)
4.3 JDK并发数据结构 由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下工作,这是因为这些数据结构不是线程安全的。 4.3.1 并发List Vector或者CopyOnWriteArrayList是两个线程安全的List实现,ArrayList不是线程安全的,...原创 2018-09-17 16:05:04 · 163 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(JDK多任务执行框架)
4.2 JDK多任务执行框架 为了给并行程序开发提供更好的支持,Java不仅提供了Thread类,Runnable接口等简单的多线程支持工具,为了改善并发程序的性能,在JDK中还提供了用于多线程管理的线程池。本节将主要讨论线程池及其在Java中的实现与使用。 4.2.1无限制线程的缺陷 多线程的软件设计方法确实可...原创 2018-09-14 10:36:23 · 162 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(并发控制方法)
4.4 并发控制方法 并行程序开发将不可避免地要涉及多线程,多任务间的协作和数据共享等问题。在JDK中,提供了多种途径实现多线程间的并发控制。常用的方法有:内部锁,重入锁,读写锁,信号量等。 4.4.1 Java内存模型与volatie 在Java中,每一个线程有一块工作内存区,其中存放着被...原创 2018-09-20 21:42:42 · 182 阅读 · 0 评论 -
【Java程序性能优化 第一版】第四章(不变模式, 生产者-消费者模式)
4.1.4 不变模式 不变模式天生就是多线程友好的,它的核心思想是,一个对象一旦被创建,则它的内部状态将永远不会发生改变。所以,没有一个线程可以修改其内部状态和数据,同时其内部状态也绝不会自行发生改变。基于这个特性,对不变对象的多线程操作将不需要进行同步控制。 △ 注意:不变模式和只读属性是有一定区别的。不变模式比只读属性具有更强的一致性和不变性。对只读属性的对象而言,对象本身不能...原创 2018-09-13 14:51:58 · 169 阅读 · 0 评论 -
【Java多线程编程核心技术】第一章(多线程技能suspend,resume,yield)
1.8 暂停线程 在多线程中,suspend是暂停线程,resume是恢复线程的执行. 1.8.1suspend方法和resume方法的使用 public class MyThread extends Thread { private long i = 0L; public long getI() { return i; } pu...原创 2018-10-08 15:14:20 · 195 阅读 · 0 评论