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);
//使用Thread的setName方法,设置线程名字
t1.setName("xianchenga");
t2.setName("xianchengb");
//启动线程
t1.start();
t2.start();
}
}
转载于:https://blog.51cto.com/learnnew/1200313