java_线程整合

原创 2012年03月29日 18:11:25

1、线程和进程(linux下fork系统调用以及操作系统详解)
  进程:资源分配基本单位
  线程:资源占有基本单位

2、单进程:DOS、主线程:main

3、Thread 核心方法run()  
**start()  使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

4、两种方式:
1.实现runnable()接口
2.定义一个Thread子类并重写run()方法

5、线程启动  和  方法调用
线程启动:1.实现runnable接口(重写run方法)  -->new Thread(实现runnable接口的类的对象)-->调用start()方法
        2.继承Thread类(重写run方法)  -->start方法
方法调用 : run方法的调用     虚拟机实现的只是start方法
   由此:JVM调用start方法,而start后台需要创建deamon精灵线程调用run方法

6、线程基本方法
isAlive  判断线程是否终止
getPriority  获得线程优先数值
setPriority  设置线程优先数值
Thread.sleep(mm)  线程睡眠毫秒数
   join  合并线程
yield  让出cpu进入就绪就绪队列
wait 
notify/notifyAll  唤醒等待线程
sleep:静态方法  睡眠  若被其他线程打断  则抛出异常InteruptedException


7、线程同步
执行顺序问题
锁定同步内容:synchoronized(this){锁定内容}  或者在方法类型前面添加关键字synchronized  互斥锁
     类似于静态块static修饰
     由synchoronized造成死锁

面试实例剖析:
public class TT implements Runnable {
int b = 100;

public synchronized void m1(){
  try{
   b = 1000;
   Thread.sleep(5000);
   System.out.println("m1:b="+b);
  }catch(Exception e){ }
}

public void m2() {
  System.out.println("m2:"+b);
}

public void run() {
  m1();
}

public static void main(String[] args) throws Exception{
  TT tt = new TT();
  Thread t = new Thread(tt);
  t.start();
// Thread.sleep(1000);   //修改睡眠时间或删除该行观察变量b结果
  tt.m2();
}
}

若添加Thread.sleep(1)一句,tt.t2()打印出1000,若删除Thread.sleep(1);,tt.t2()打印出100
-------------------->线程机制

Object 类 两个重要方法被继承:wait  和  notify

java如何终止线程(整合自网络)

声明本文出自:安卓开发网 关于java如何终止线程的一篇文章:http://www.cnblogs.com/gpcuster/archive/2010/01/18/1650273.html ...

java 线程游戏 打地鼠

  • 2017年12月10日 13:58
  • 1.45MB
  • 下载

java线程.rar

  • 2017年07月26日 10:17
  • 232KB
  • 下载

Java结束线程的三种方法

线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的。例如在程序中使用线程进行So...
  • xu__cg
  • xu__cg
  • 2016年10月16日 18:15
  • 9588

Java工程师线程试题

  • 2015年03月25日 17:25
  • 37KB
  • 下载

Java线程.pdf

  • 2014年12月14日 16:25
  • 281KB
  • 下载

Java通过实现Runnable接口来创建线程

创建一个线程,最简单的方法是创建一个实现Runnable接口的类。 为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下:public void run()你可以重写该方法,重...

java线程

  • 2015年05月26日 14:01
  • 53KB
  • 下载

53道Java线程面试题

下面是Java线程相关的热门面试题,你可以用它来好好准备面试。 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java_线程整合
举报原因:
原因补充:

(最多只允许输入30个字)