web 初始 5

在这里插入代码片
风和日丽,晴空万里,真是学web的好季节。
昨天大概说明了一点多线程的主两种方法,Thread类和Runnable接口,其实它两可以算得上是同一种方法,因为就算是Runnable接口也需要Thread类的构造方法。由此不难看出Thread这个类在web中起到承上启下,贯穿全文的作用,那么它到底是个什么玩意?“Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的 Thread 对象与之关联,而 Thread 类的对象就是用来描述一个线程执行流的,JVM 会将这些 Thread 对象组织起来,用于线程调度,线程管理。”说实话我暂时没找到适合的例子来清晰此概念,得再多动动脑壳。
以下是Thread常见的构造方法:
1.Thread() 创建线程对象
2.Thread(Runnable target) 使用 Runnable 对象创建线程对象
3.Thread(String name) 创建线程对象,并命名
4.Thread(Runnable target, String name) 使用 Runnable 对象创建线程对象,并命名
&Thread(ThreadGroup group,Runnable target) 线程可以被用来分组管理,分好的组即使线程组,网上说这个仅需了解就行,因为不算常见。(以后会用“&”表明无关紧要的一些知识点)
具体用法无非是实例化,相信没啥可说的,能来看web的同学绝对知道啥意思:
Thread t1 = new Thread();
Thread t2 = new Thread(new MyRunnable());
Thread t3 = new Thread(“这是我的名字”);
Thread t4 = new Thread(new MyRunnable(), “这是我的名字”);
除了构造方法,属性也有一些常见的:
属性 获取方法
ID getId()
名称 getName()
状态 getState()
优先级 getPriority()
是否后台线程 isDaemon()
是否存活 isAlive()
是否被中断 isInterrupted()
*ID 是线程的唯一标识,不同线程不会重复
*名称是各种调试工具用到
*状态表示线程当前所处的一个情况,下面我们会进一步说明
*优先级高的线程理论上来说更容易被调度到
*关于后台线程,需要记住一点:JVM会在一个进程的所有非后台线程结束后,才会结束运行。
*是否存活,即简单的理解,为 run 方法是否运行结束了
线程的中断问题,下面我们进一步说明(代码为模板):

在这里插入代码片
public class ThreadDemo {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
for (int i = 0; i < 10; i++) {
try {
System.out.println(Thread.currentThread().getName() + ": 我还活着");
Thread.sleep(1 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName() + ": 我即将死去");
});
System.out.println(Thread.currentThread().getName()
+ ": ID: " + thread.getId());
System.out.println(Thread.currentThread().getName()
+ ": 名称: " + thread.getName());
System.out.println(Thread.currentThread().getName()
+ ": 状态: " + thread.getState());
System.out.println(Thread.currentThread().getName()
+ ": 优先级: " + thread.getPriority());
System.out.println(Thread.currentThread().getName()
+ ": 后台线程: " + thread.isDaemon());
System.out.println(Thread.currentThread().getName()
+ ": 活着: " + thread.isAlive());
System.out.println(Thread.currentThread().getName()
+ ": 被中断: " + thread.isInterrupted());
比特科技
 thread.start();
while (thread.isAlive()) {}
System.out.println(Thread.currentThread().getName()
+ ": 状态: " + thread.getState());
+     }
+ }

在这里插入代码片那么今天先到这吧,今天的码开始多起来了,说不定学出点啥以后可能全是码,文字叙述就一两行。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读