Java线程
文章平均质量分 90
tbc123tbc
好好学习IT技术。
展开
-
Java线程——线程组
在Java中,线程组是指java.lang.TheadGroup类的对象,每个线程都隶属于唯一的个线程组,这个线程组在线程创建时指定井在线程的整个生命期内都不能更改。可以通过调用包含ThreadGroup类型参数的Thread 类构造方法来指定线程所属的线程组: 若没有指定,则线程默认地隶属于名为main 的系统线程组。除了预建的系统线程组外,所有线程组都必须显式创建。在Java中,除系统线程组外的原创 2017-12-24 21:12:48 · 278 阅读 · 0 评论 -
Java线程——用ForkJionPool小试牛刀
并行计算,能很大的扩大计算机的性能。在研究java多线程的并发的时候了解到——Java7就提供了这么一个Fork/Join框架来支持并行计算。Fork/Join框架的核心类ForkJoinPool,它能够接收一个ForkJoinTask,并得到计算结果。ForkJoinTask有两个子类,RecursiveTask(有返回值)和RecursiveAction(无返回结果),我们自己定义任务时,只需选原创 2018-01-02 18:08:55 · 217 阅读 · 0 评论 -
Java中并行与并发的区别
最近研究Java线程,多线程的并发,又研究了Fork/Join框架知道了这是并行计算。于是就有了整理一下并行与并发的区别的必要。 并行,同时进行几个任务;并发,根据虚拟机分配的时间片分时间运行不同的任务,同一时间只有一个任务在进行。用图介绍如下: 并行 并发原创 2018-01-02 17:54:05 · 736 阅读 · 0 评论 -
Java多线程——线程死锁
启动同步锁机制后,值得注意的是无限等待和循环等待两种情况。 1、无限等待 线程A等待线程B完成同步锁后释放同步锁,然而线程A却陷入了死循环,导致线程B进入无限的等待中。synchronized (this){ while(true){ System.out.println("This is dead Loop");原创 2018-01-02 12:58:33 · 181 阅读 · 0 评论 -
Java线程——一个简单综合案例
这个案例是使用多线程来下载资源来综合演示多线程的基本使用。首先明白,比起单线程下载,多线程下载在同一时间段内发出多个请求,每个下载请求负责下载一个内容,充分利用了网络宽带,例如网络蚂蚁、FlashGet、迅雷等支持HTTP协议的下载软件。 下载的线程并非线程越多越好。加入1024个字节动用1024个线程下载,它的优势一下子没了,因为每一个线程平均下载一个字节,它用于创建线程的代价和自身网络出口造原创 2017-12-25 08:42:23 · 211 阅读 · 0 评论 -
Java线程——特殊线程TimerTask定时器
TimerTask是一种特殊的线程,用来为Timer安排一次执行或重复执行的任务。它实现了Runnable接口,是一个抽象类:/** * A task that can be scheduled for one-time or repeated execution by a Timer. * * @author Josh Bloch * @see Timer * @since原创 2017-12-26 10:37:09 · 335 阅读 · 0 评论 -
Java线程——线程池结合网络编程
下面我们通过一个实际的应用案例来展示如何使用线程池。在我们编写基于Socket的服务器程序时,通常的做法是,每连接一个客户端,都为它创建一个新的线程,客户端离开后再销毁该线程。 在实际的应用中,面对大量的客户端,需要大量的、频繁的创建多个线程并销毁,对系统资源造成了很大的浪费。然而此时使用线程池技术是非常合适的,它可以大大减少线程的创建和销毁次数,提高服务器的工作效率。但如果线程要求的运行时间比较原创 2017-12-26 09:49:58 · 354 阅读 · 0 评论 -
Java线程——线程池ExecutorService
诸如Web服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网 络协议(例如HTTP、FTP或POP)、JMS队列或者轮询数据库。不管请求如何到达,在服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的一个过于简单的模型应该是:当一个请求到原创 2017-12-25 21:35:37 · 338 阅读 · 0 评论 -
Java线程——生产者消费者
下面举一个两个线程共享同一个数据的例子。 先用一幅图来说明这个消费者生产者关系 ProductList是一个生产者跟消费者共享的同步机制,这个机制决定了什么情况生产者要wait(), 什么情况消费者要wait()。可以把ProductList看做一个产品仓库.当产品仓库满的时候,生产者线程需要wait(),从而放弃对产品仓库的控制。这个时候消费者线程就可以进来了且取得仓库的控制权。一旦消费者消原创 2017-12-25 17:20:37 · 211 阅读 · 0 评论 -
Java线程——线程间通信
因为进程之间不能互访对方的地址空间,在进程之间传替消息只能采用类似于远程调用的手段。这就让多线程之间的通信更加显得有优势。 目录 (1)、传递二进制消息 (2)、传递字符信息正文 (1)、传递二进制消息 主要用到java.io.PipedOutputStream拥有允许指定输入管道流的构造方法 和java.io.PipedInputStream拥有一个指定输出管道流的构造方法。 案例如原创 2017-12-24 23:10:09 · 256 阅读 · 0 评论 -
Java线程——(1)创建和启动线程
多线程技术之所以诞生,其最根本的动因在于提高系统的资源利用率,以提升系统应对更复杂计算任务、更高强度的并发访问。 初次整理多线程技术从三个方面来整理 (1)、创建和启动线程; (2)、管理线程的状态; (3)、线程与Java对象之间的关系。 本篇博客——《线程的创建和启动线程》 内容目录: 一、线程简介 1 什么是线程 2 多线程的用途 2.1与用户的更加交原创 2017-12-21 08:47:23 · 241 阅读 · 0 评论 -
Java线程——(2)线程的管理(下)
索引目录 1、线程的状态 2、线程等待和唤醒 3、线程休眠和中断 4、为程序添加退出事件 5、线程组正文内容 1、线程的状态 线程的6种状态如下图 2、线程等待和唤醒 3、线程休眠和中断 4、为程序添加退出事件 5、线程组原创 2017-12-23 01:32:38 · 136 阅读 · 0 评论 -
Java线程——(2)线程的管理(上)
索引目录 1、线程的状态 2、线程等待和唤醒 3、线程休眠和中断 4、为程序添加退出事件 5、线程组正文内容 1、线程的状态 线程的6种状态如下图 2、线程等待和唤醒 void wait(): 使线程陷入一直等待的状态,除非被唤醒。 void wait(long timeout): 使线程等待timeout指定的毫秒数。 void wait(long timeout,int原创 2017-12-23 17:32:21 · 304 阅读 · 0 评论 -
Java并发——线程安全
线程安全主要是从以下五个方面来谈谈,如下图: 前奏—— 编写线程安全的代码,本质上就是管理对状态(state)的访问,而且通常都是共享的、可变的状态。通俗地说,一个对象的状态就是它的数据,存储在状态变量(state variables)中,比如实例域或静态域.对象的状态还包括了其他附属对象的域。例如,HashMap的状态一部分存储到对象本身中,但同时也存储到很多Map.Entry对象中原创 2017-12-26 18:16:43 · 242 阅读 · 0 评论