java sleep wait 性能_Java中sleep()和wait()比较

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()方法后本线程才进入对象锁定池准备

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值