Java并发编程线程入门简介

Java并发编程线程入门简介

ID:41037248

大小:36.50 KB

页数:6页

时间:2019-08-14

Java并发编程线程入门简介_第1页
Java并发编程线程入门简介_第2页
Java并发编程线程入门简介_第3页
Java并发编程线程入门简介_第4页
Java并发编程线程入门简介_第5页
资源描述:

《Java并发编程线程入门简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java并发编程:线程     从一开始Java就被设计成支持并发编程的语言,java语言及其核心类库都有对并发编程的支持。从5.0开始,Java平台引入了一些高层的并发接口。本系列文章将尽可能的概括这些内容。  进程与线程  并发编程模式中,有两个基本执行单元:进程与线程。进程和线程是现代操作系统的基本概念。一个进程拥有独立完备的执行环境,进程拥有私有的计算机资源,比如独立的内存空间、代码段、指令寄存器等等。进程在操作系统中基本等同于应用程序。最终用户看到的独立程序有可能是多个互相协作的进程,为了方便进程之间的通信,大多数操作系统支持进程间通信(InterProcessCommun

2、ication,IPC)资源,比如管道和端口。IPC往往不仅仅在同一台计算机系统上使用,也往往运用于不同计算机系统之间的通信。  线程通常也称轻量级进程,线程拥有的资源比进程的要少。线程只存在于进程中,一个进程可以包含多个线程。比如一个Java程序中可以有多个线程存在。线程不拥有独立的内存空间,而是和同进程内的其他线程共享进程的内存空间。由于线程共享进程的资源(内存或者打开的文件),同进程的线程之间往往需要大量的互斥和同步,保证资源使用的可确定性。这在前面文章中已经说过,资源共享是并发编程中同步和互斥的根源。  由于进程的特性,使得它们之间资源共享的冲突比较少,因此并发编程主要是针对

3、线程的,多线程编程是Java程序的基本特征。因此这儿讲的并发编程主要是针对Java线程编程的。  Java线程  简单来说,每个Java线程都有一个Thread实例与之对应。创建线程对象的方法通常有两种:  1.直接创建和管理,也就是每当程序需要异步执行任务时就实例化一个Thread对象,然后自己管理其生命周期。  2.抽象线程管理,使其从程序代码中分离开来。这些接口在java5之后的java.util.concurrency包中提供。  我们先讨论第一种方式,java.util.concurrency包提供的高层工具我们在后面的文章再讨论。  第一种方式创建线程非常直接,有两种方法

4、可以创建一个线程实例:  1.生成一个Runnable对象,并将它传递给Thread对象。1publicclassHelloWorldimplementsRunnable{2    publicvoidrun(){3        System.out.println("HelloWorld");4    }5    publicstaticvoidmain(Stringargs[]){6        (newThread(newHelloWorld())).start();7    }8}9  2.继承Thread并实现其run方法:1publicclassHelloThread

5、extendsThread{2    publicvoidrun(){3        System.out.println("HelloWorld!");4    }5    publicstaticvoidmain(Stringargs[]){6        (newHelloThread()).start();7    }8}9       如何选择使用哪种方式呢?第一种模式更为通用,实现一个Runnable接口允许你继承并复用某类。第二种更简单,缺点是必须继承Thread。你可以根据具体情况选择。  Thread对象中定义了一些有用的方法来管理线程的生命周期:  1.pub

6、licstaticvoidsleep(longmillis)throwsInterruptedException方法,该方法挂起当前线程一段时间,主动让出处理器让其他线程使用。sleep方法还可以用来控制执行的速度。注意这个方法在挂起线程时,有可能被其他线程中断挂起,因此不能依赖其时间参数来定时。  2.publicvoidinterrupt()方法,该方法中断某线程正在做的事情,告诉它某些事情发生了需要处理。程序员需要捕捉这个中断异常,并在异常处理中执行应该做的动作。接受中断的方式有两种,一种是被中断线程目前正在执行一个能抛出InterruptedException的方法,比如sl

7、eep或者Object.wait等方法,还比如一些可以被interrupted的SeverSocket.accept方法等等。下面是示例代码:1for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。