(1)实现多线程第一种方法
public class Demo{
public static void main(String args[]){
new TestThread().start();
while(ture){
System.out.println("main():"+Thread.currentThread().getName());
}
}
}
class TestThread extends Demo{
public void run(){
while(ture){
System.out.println("run()"+Thread.currentThread().getName());
}
}
}
(2)
currentThread()获得当前的进程,他是Thtead的静态方法;
类名.currentThread()
单线程和多线程的关系:
单线程和多线程:总量一样,多线程同时进行多个,但总量不变。
类要实现接口implements,
Runnable接口里边只有一个run();Runnable target;
(3)实现多线程第二种方法
public class Demo{
public static void main(String args[]){
//new TestThread().start();
TestThread a=new TestThread();
Thread t=new Thread(a);
t.start();
while(ture){
System.out.println("main():"+Thread.currentThread().getName());
}
}
}
class TestThread implements Runnable{
public void run(){
while(ture){
System.out.println("run()"+Thread.currentThread().getName());
}
}
}
(4)四个窗口卖400张票
public class Demo{
public static void main(String args[]){
new TestThread().start();
new TestThread().start();
new TestThread().start();
new TestThread().start();
}
}
class TestThread extends Demo{
public int tickets=100;
public run();
while(){
if(tickets>0){System.out.println(Thread.currentThread().getName()+"卖票"+tickets--);}
}
}
(5)100张票四个窗口卖
public class Demo{
public static void main(String args[]){
TestThread a=new TestThread();
new Thread(a).start();
new Thread(a).start();
new Thread(a).start();
new Thread(a).start(); }
}
class TestThread implements Runnable{
public int tickets=100;
public run();
while(){
if(tickets>0){System.out.println(Thread.currentThread().getName()+"卖票"+tickets--);}
}
}
(6)
前台线程和后台线程
在调用start之前先调用set startDaenon(bool)
前台线程结束后进程也会随着结束,有后台进程的时候前台结束进程也不会结束
后台线程:TestThread a=new TestThread();
Thread tt=new Thread();
tt.setDaenon(true);
tt.start();
(7)
public class Test{
public static void main(String args[]){
TestThread a=new TestThread();
Thread tt=new Thread(a);
tt.start();
int i=0;
while(i=100){
try{
tt.join(); }catch(exception e){e.printStackTrace();
}
System.out.println("main:"+i++);
}
}
}
class TestThread implements Runnable{
public void run(){
int i=0;
while(true){
System.out.println(Thread.currentThread().getName()+i++;
}
}
}