Thread类中sleep是为什么是静态方法
来源:互联网 发布:日志服务器软件 编辑:程序博客网 时间:2024/06/05 01:04
Thread sleep的含义
Thread类中sleep是静态方法,表示当前线程休眠。
Thread的API
public static native void sleep(long millis) throws InterruptedException;
/**
* Causes the currently executing thread to sleep (temporarily cease
* execution) for the specified number of milliseconds, subject to
* the precision and accuracy of system timers and schedulers. The thread
* does not lose ownership of any monitors.
*
Thread.sleep是 使 当前 执行得线程 休眠,就是 Thread.sleep所在代码片段的线程
Thread sleep和实例.Slepp的区别???
package com.linkage.deadlock;
public class Thread_Sleep extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("执行线程");
}
}
public static void main(String[] args) {
Thread_Sleep tt=new Thread_Sleep();
tt.start();
while(true){
System.out.println("main---------------------------");
try {
tt.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
这个说明:tt.sleep还是在休眠主线程,而不是休眠 实例所在线程
tt.sleep和 Thread.sleep效果 是一样的, 实际上都是 调用类的静态方法
为什么不设计成非静态的,当实例调用时,该实例休眠 ?
1、sleep是静态方法,那么在实现Runnable的线程类也能调用。
2、sleep是静态方法,所以sleep时候只是让出了cup却不能释对象锁,因为获取不到对象。???
3、线程和实例并不是对等的,不是一个线程是一个实例,是你创建的实例继承了Thread或者Runable,实现了run(),并调用start()的时候能执行多个线程,实例还是一个,线程却是多个。所以实例休眠线程就休眠了这个假设不成立。
如果sleep不是静态的, 只对当前进程作用. 而是实例方法, 那么应该和suspend有同样的问题, 死锁.
- Thread类中sleep是为什么是静态方法
- java中sleep方法为什么是静态的?
- JAVA -- 线程的sleep()方法为什么是静态的
- Thread类中sleep方法
- 为什么wait方法在object类中,sleep方法在Thread类中?
- wait()和notify(),notifyAll()是Object类的方法,sleep()和yield()是Thread类的方法
- 抽象方法为什么不能是静态的
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- 在java中为什么main方法必须是静态的解释
- 笔试题:和wait()比较一下,thread中的sleep()的方法为什么被设计为静态方法?
- java中main函数为什么是静态的
- 为什么不管是静态内部类的普通方法还是静态方法都不能访问外部类的实例变量
- 理解.NET中Thread.Sleep()方法(C#)
- java 中 Thread.sleep方法的含义
- Thread.Sleep()挂起线程究竟是干嘛的??摘录
- 关于类中线程函数为什么是静态函数简单说明
- java中interface中的方法为什么不能是static方法?
- 类中的线程函数为什么必须是静态的
- .Net Program Unable to copy a file from obj\Debug to bin\Debug
- bq2031
- 软件设计师2013年上半年错题整理
- 出现 java.util.ConcurrentModificationException
- IOS-添加分段控件SegmentControl
- Thread类中sleep是为什么是静态方法
- 源码编译安装lamp环境
- HashMap java.util.ConcurrentModificationException
- Objective-C学习笔记八:类的定义二
- [Leetcode]Minimum Size Subarray Sum
- HashMap遍历的两种方式
- phpstrom如何配置git
- leetcode Binary Tree Preorder Traversal
- 用正则在eclipse中搜寻出所有中文字符