没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、Thread类的常用结构
(1)线程中的构造器
1、Thread()
2、Thread(String name)
3、Thread(Runnable target)
4、Thread(Runnable target,String name)
(2)线程中的常用方法
1、run()
2、start()
3、getName()
4、setName()
5、currentThread()
6、sleep()
7、yield()
8、join()
9、isAlive()
(3)过时方法
1、stop()
2、suspend()和resume()
二、线程的优先级
(1)线程调度策略
(2)获取和设置优先级
1、getPriority()
2、setPriority()
(3)案例
1、案例1
2、案例2
三、守护线程(了解)
一、Thread类的常用结构
(1)线程中的构造器
public Thread() :分配一个新的线程对象。
public Thread(String name) :分配一个指定名字的新的线程对象。
public Thread(Runnable target) :指定创建线程的目标对象,它实现了Runnable接口中
的run方法。
public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并
指定名字。
1、Thread()
🗳
public Thread() :分配一个新的线程对象。
在创建线程的方式一中,创建的是Thread类子类的对象,比如:
PrintNumber 类中并没有提供构造器,那么在造对象的时候,用的就是空参构造器,而空参构造器
的首行就是 super() ,就是调用了父类Thread的构造器 Thread() 。
2、Thread(String name)
🗳
public Thread(String name) :分配一个指定名字的新的线程对象。
name 就是给当前线程命名的。
比如现在以方式一继承Thread类为例,如下:
public Thread() {
this(null, null, "Thread-" + nextThreadNum(), 0);
}
package yuyi01.thread;
public class EvenNumberTest {
public static void main(String[] args) {
//3.创建当前Thread的子类的对象
PrintNumber t1=new PrintNumber();
//4.通过对象调用start(): 1.启动线程 2.调用当前线程的run()
t1.start();
}
}
//1.创建一个继承于Thread类的子类
class PrintNumber extends Thread{
private double money=1000;
//2.重写Thread类的run() --->将此线程要执行的操作,声明在此方法体中
@Override
public void run() {
for (int i = 1; i <= 1000; i++) {
if(i%2==0){
System.out.println(Thread.currentThread().getName() +":" +i);
}
}
}
}
public Thread(String name) {
this(null, null, name, 0);
}
运行结果(部分):
package yuyi01.method;
public class EvenNumberTest3 {
public static void main(String[] args) {
//3.创建当前Thread的子类的对象
PrintNumber t1=new PrintNumber();
//4.通过对象调用start(): 1.启动线程 2.调用当前线程的run()
t1.start();
//main()方法所在的线程执行的操作:
for (int i = 1; i <= 1000; i++) {
if(i%2==0){
System.out.println(Thread.currentThread().getName() +":"
+i+"**********");
}
}
}
}
//1.创建一个继承于Thread类的子类
class PrintNumber extends Thread{
//2.重写Thread类的run() --->将此线程要执行的操作,声明在此方法体中
@Override
public void run() {
for (int i = 1; i <= 1000; i++) {
if(i%2==0){
System.out.println(Thread.currentThread().getName() +":" +i);
}
}
}
}
main是主线程的,Thread-0是默认分线程的名字。
现在我们在当前类里面写两个构造器,如下:
这个对应的就是Thread里面的构造器,如下:
然后我们可以在形参的位置写一个名字,比如“线程1”:
class PrintNumber extends Thread{
public PrintNumber(){
}
public PrintNumber(String name){
super(name);
}
//...
}
相当于调用了这个构造器,如下:
构造器不会继承给子类,所以子类还是需要写一个接收name的有参构造器。
运行结果:
可以看到 Thread-0 变成了“线程1”。
public class EvenNumberTest3 {
public static void main(String[] args) {
//3.创建当前Thread的子类的对象
PrintNumber t1=new PrintNumber("线程1");
//...
}
}
剩余31页未读,继续阅读
资源评论
雨翼轻尘
- 粉丝: 6w+
- 资源: 130
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功