Java多线程

class FirstThread extends Thread{

public void run(){

for(int i=0;i<100;i++){

System.out.println("FirstThread"+i);

}

}

}

class Test{

public static void main(String args[]){

//生成线程类的对象

FirstThread ft=new FirstThread();

//启动线程

ft.start();

//ft.run();不能这样写,否则变成单线程了

for(int i=0;i<100;i++){

System.out.println("main"+i);

}

}

}

这里有三个线程:1Main线程

2 ft对象创建线程3垃圾回收线程

class RunnableIm implements Runnable{

public void run(){

for(int i=0;i<100;i++){

System.out.println("Runnable"+i);

if(i==50){

try{

Thread.sleep(5000);

}

catch(Exception e){

System.out.println(e);

}

}

}

}

}

class Test{

public static void main(String args[]){

//生成一个Runnable接口实现类的对象

RunnableIm ri=new RunnableIm();

//ri作为构造函数的参数传入到Thread对象中,生成对象

Thread t=new Thread(ri);

//通知Thread对象,执行start()方法

//线程的优先级最大是10,最小是1,可以使用静态常量来设置优先级

t.setPriority(Thread.MAX_PRIORITY);

t.start();

System.out.println(t.getPriority());

}

}

线程同步机制:

class RunnableIm implements Runnable{

int i=100;

public void run(){

while(true){

//同步代码块,this是一个同步锁

synchronized(this){

System.out.println(Thread.currentThread().getName()+i);

i--;

Thread.yield();

if(i<0){

break;

}

}

}

}

}

class Test{

public static void main(String args[]){

RunnableIm ri=new RunnableIm();

//生成两个Thread对象,产生两个线程体

Thread t1=new Thread(ri);

Thread t2=new Thread(ri);

//使用ThreadsetName方法,设置线程名字

t1.setName("xianchenga");

t2.setName("xianchengb");

//启动线程

t1.start();

t2.start();

}

}