码迷,mamicode.com
首页 > 编程语言 > 详细

Java中sleep()和wait()比较

时间:2016-08-06 11:23:56      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

1.进程和线程

  进程:是一个正在执行中的程序。
            每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。
  线程:就是进程中的一个独立的控制单元,是比进程更小的执行单位。线程只是一种为单一处理器分配执行时间的手段,
     线程在控制着进程的执行。

一个进程中至少有一个线程。

2.什么是多线程?

  多线程是指一个进程在执行过程中可以产生多个线程,这些线程可以同时存在,同时运行,一个进程可能包含了多个同时执行的线程。如,迅雷下载,可以下载多个任务,就是多线程

3.创建多线程的第一种方式:继承Thread类。
  (1)定义类继承Thread类
  (2)覆写Thread 类中的run()方法
    目的:将自定义代码存储在run方法,让线程运行
  (3)调用线程的start方法。该方法有两个作用:启动线程,调用run方法
package org.lxh.demo9.threaddemo;
class MyThread extends Thread 
{
    private String name;
    public MyThread(String name)  //通过构造方法设置属性内容
    {
    this.name =name;
    }
    public void run(){    //覆写Thread类中的run()方法
        for (int i=0;i<10;i++)
        {
            System.out.println(name+"运行,i="+i);
        }
    }

}
public class ThreadDemo2 {
    public static void main(String[] args) {
        MyThread mt1= new MyThread("线程A");    //创建好了一个线程
        MyThread mt2= new MyThread("线程B");
        mt1.start();   //启动多线程,并执行该线程的run方法,若用mt1.run();仅仅是对象调用方法,而线程创建了,并没有运行。等到把run方法执行完了,再执行下一个。
        mt2.start();  //启动多线程
    }
}

  

4.sleep()和wait()比较

对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的

sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。

在调用sleep()方法的过程中,线程不会释放对象锁。

而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备

获取对象锁进入运行状态。

Java中sleep()和wait()比较

标签:

原文地址:http://www.cnblogs.com/GumpYan/p/5743496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!