java总结之进程和线程.docx_第1页
java总结之进程和线程.docx_第2页
java总结之进程和线程.docx_第3页
java总结之进程和线程.docx_第4页
java总结之进程和线程.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java总结之进程和线程1. (1) 将并发完成的每一件事情称为线程。(2) 一个进程是包含自身地址的程序通常将正在运行的程序称为进程,进程内部的任务称为线程,线程是进程的实体,一个进程可以拥有多个线程。一个线程是进程内的一个单一的顺序控制流程,指的是一个进程可以同时运行几个任务,每个任务有一个线程来完成。即多个线程可以同时运行,并且在一个进程内执行不同的任务。2. 创建进程 在Java中,线程也是一种对象,只有实现Runnable接口的类的对象才能成为线程。(1) 继承Thread类Thread类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建立Thread实例。例: public Thread (String threadname) public Thread ()_ 第一个构造方法是创建一个名称为threadname的线程对象 public class ThreadTest extends Thread /启动线程public static void main(String args) new ThreadTest().start();实现Runnable()接口如果程序员需要继承其他类(非Thread类)并是该程序可以使用线程,就需要使用Runnable接口例: public Thread (Runnable r) public Thread (Runnable r,String st) 两种方法的比较(1) 实现Runnable接口从面向对象的角度来看,Thread类是一个虚拟处理机严格封装,因此只有当处理机模型修改或扩张时,才应该继承。(2) 继承Thread类当一个run()方法体现在继承Thread的类中时,可以用this指向实际控制运行的Thread实例,不在需要“Thread.currenThread().sleep()”。相关应用程序 继承Thread类 public class ThreadTest extends Thread / 指定类继承Thread类 private int count = 10; public void run() / 重写run()方法 while (true) System.out.print(count + ); / 打印count变量 if (-count = 0) / 使count变量自减,当自减为0时,退出循环 return; / 退出程序 public static void main(String args) new ThreadTest().start(); / 启动线程 Runnable接口public class ThreadDemo implements Runnable Override public void run() for (int i = 0; i 10; i+) / 定义循环 System.out.println(TestThread 线程在运行); / 输出提示信息 public static void main(String args) ThreadDemo demo = new ThreadDemo(); / 创建本类对象 new Thread(demo).start(); / 创建线程对象,并启动线程 for (int i = 0; i 0) / 如果总票数大于0 try Thread.sleep(1000); / 线程休眠 catch (Exception e) e.printStackTrace(); System.out.println(剩余票数为: + -num); / 输出提示信息 public static void main(String args) CopyOfThreadSafeTest t = new CopyOfThreadSafeTest(); / 定义本类对象 Thread tA = new Thread(t); / 定义线程对象 Thread tB = new Thread(t); Thread tC = new Thread(t); Thread tD = new Thread(t); tA.start(); / 驱动线程 tB.start(); tC.start(); tD.start(); 同步方法:public class Example int num = 100; public synchronized void doit() / 定义同步方法 if (num 0) try Thread.sleep(10); catch (Exception e) e.printStack

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论