/**
* instruction of project
*
* @author Aruiea.com
* @ClassName Day06
* @Version 1.0
* @Date 2020/7/6 9:43
* thread:线程
*/
public class Day06 {
public static void main(String[] args) {
//create thread
new Day06();
//Thread encapsulation(封装) 每new一个Thread,就创建了一个cpu中的线程
// 只有继承方式不需要再指定里面的thread.实现Runnable接口的类需要指定实现了run方法的类。
//修改Thread的系统名称
Thread myThread = new MyThread();
Thread yourThread = new Thread(new YourThread(),"炫酷吊炸天线程1");
//创建方式:匿名内部类
Thread thread1 = new Thread(){
@Override
public void run(){
super.run();
}
};
Thread yourThread1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("创建了一个run方法,并给Thread线程!");
}
});
//直接调用run方法,只是方法的调用。
// myThread.run();
// yourThread.run();
myThread.start();
yourThread.start();
for (int i = 0; i < 10; i++) {
System.out.println("主线程:"+i);
}
//Thread静态类的方法
// currentThread():获得/设置当前线程的信息,起名字可以在构造函数里写:看上面
Thread.currentThread().getId();
Thread.currentThread().getName();
Thread.currentThread().getPriority();//获得优先级,默认是5,
Thread.currentThread().setName("起个名字");
Thread.activeCount();//激活的线程数量
thread1.setPriority(Thread.MAX_PRIORITY);
thread1.isAlive();
thread1.isDaemon();
thread1.isInterrupted();
//Daemon:守护线程,后台/用户:主线程已结束,就把守护线程结束掉。
Thread daemon = new Thread() {
public void run() {
while (true) {
System.out.println("Daemon守护线程已开启,正在守护中...");
}
}
};
daemon.setDaemon(true);
daemon.start();
System.out.println(daemon+"是一个守护线程吗?"+daemon.isDaemon());
//thread不能再次开启.start()
// 创建线程池对象
ExecutorService threadPool = Executors.newFixedThreadPool(3);
//提交线程到线程池
threadPool.submit(new Runnable() {
@Override
public void run() {
while (true){
System.out.println("第一个线程");
}
}
});
threadPool.submit(new Runnable() {
@Override
public void run() {
System.out.println("第二个线程");
}
});
//关闭线程池
threadPool.shutdown();
/**
* java多线程,用Thread来创建一个cpu线程对象,实现run方法来进行线程中内容的定义。
* 多个线程可以加入到线程池中,减少线程之间的频繁创建和释放,减少操作系统的资源使用。
* run只是一个普通的方法,开启线程需要使用Thread.start()。
*/
}
}
javanote7:Thread简笔
最新推荐文章于 2024-04-14 23:10:35 发布