Thred:
//笑脸代表知识点
A:
线程是程序中的执行线程,Java虚拟机允许应用程序一起U型多个执行线程
声明Thred的子类,重写他的run方法
//CPU执行程序是高速切换随机执行
调用start()执行线程,不能直接调用run();
String getName(); 返回该线程的名称
String setName(String name); 修改该线程的名字,使之与参数相同.
代码演示:
public class 课题01 { public static void main(String[] args) { S S = new S(); S s = new S(); S.setName("S:"); S.start(); System.out.println("是否会打印? "); // 执行顺序? //多线程执行,会加载S线程 ,但也会执行mian线程 }}class S extends Thread { public void run() { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); System.out.println(s); }}
B:
创建线程第二种方式:实现Runnable接口
//通过实现接口的方式来完成多线程
Thread.currentThread.getName();
//返回该线程名字
Thread是线程调用构造;
线程里放入多级线程:
public class 课题03 { public static void main(String[] args) { C c = new C(); Thread t = new Thread(c); t.setName("售票口A:"); Thread t1 = new Thread(c); t1.setName("售票口B:"); Thread t2 = new Thread(c); t2.setName("售票口C:"); t.start(); t1.start(); t2.start(); //?为什么都是B窗口?????
//Cup随机切换,现在运算程度大多都很快,Cup还未来得及切换就已经运算完毕了 }}class C implements Runnable { int x = 10000; public void run() { while (true) { if (x > 0) { System.out.println(Thread.currentThread().getName() + x); x--; } } }}