java多线程总结
2012-09-18 08:27
260 查看
java的多线程技术相对来说还是比较好的,下面就简单的做个总结吧!由于本人也没什么经验,不到之处望各位博友海涵,谅解,纠正指出!
首先是如何创建线程,总的来说有两种方式来创建线程,
1、继承Thread类,重写Thread类的run()方法,例如:class T extends Thread{},然后实例化该类对象,T t=new T(); 因为T继承自Thread类,t可以直接调用start()方法,然后JVM就会自动调用该类重写的run()方法,启动一个线程。
上面创建线程的方法虽然看起来挺好的,但是java中不允许多重继承,如果想多继承几个类,那就麻烦了,所以有了下面第2种创建线程的方法
2、实现Runnable接口,创建线程
Runnable接口中只有一个方法,那就是run()方法。例如,class R implements Runnable{},
首先要实例化R,即:R r=new R(); Thread tr=new Thread(r); tr.start();这样就可以启动一个线程。
建议最好使用实现Runnable接口这个方式来创建线程,以避免java中单继承带来的问题。
3、run()方法和start()方法的区别 方法调用和线程启动
直接调用run()方法就会等到run()中的内容执行完后,再回去执行main方法;
而用strat()启动线程,进入就绪状态,JVM就会调用线程的run()方法,和main方法交替执行。
run()结束,线程就结束。
4、wait sleep区别:
wait时别的线程可以访问锁定对象 (调用wait方法的时候必须锁定该对象)
Wait方法在java.lang.Object中,是Object类的方法,
sleep时别的线程也不可以访问锁定对象
5、线程同步:
synchronized(this){
.......
......
}
当执行这段代码的过程中锁定当前对象
6、常用方法:
public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。
public static Thread currentThread() 返回对当前正在执行的线程对象的引用。
public static void sleep(long millis)
throws InterruptedException 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。
public final void setPriority(int newPriority) 更改线程的优先级。
public final int getPriority() 返回线程的优先级。
Thread.currentThread()----------------->拿到当前线程
public static Thread currentThread()返回对当前正在执行的线程对象的引用。
public final void join()throws InterruptedException等待该线程终止。
本文出自 “远方_chen” 博客,请务必保留此出处http://chenshirong.blog.51cto.com/3945427/996769
首先是如何创建线程,总的来说有两种方式来创建线程,
1、继承Thread类,重写Thread类的run()方法,例如:class T extends Thread{},然后实例化该类对象,T t=new T(); 因为T继承自Thread类,t可以直接调用start()方法,然后JVM就会自动调用该类重写的run()方法,启动一个线程。
上面创建线程的方法虽然看起来挺好的,但是java中不允许多重继承,如果想多继承几个类,那就麻烦了,所以有了下面第2种创建线程的方法
2、实现Runnable接口,创建线程
Runnable接口中只有一个方法,那就是run()方法。例如,class R implements Runnable{},
首先要实例化R,即:R r=new R(); Thread tr=new Thread(r); tr.start();这样就可以启动一个线程。
建议最好使用实现Runnable接口这个方式来创建线程,以避免java中单继承带来的问题。
3、run()方法和start()方法的区别 方法调用和线程启动
直接调用run()方法就会等到run()中的内容执行完后,再回去执行main方法;
而用strat()启动线程,进入就绪状态,JVM就会调用线程的run()方法,和main方法交替执行。
run()结束,线程就结束。
4、wait sleep区别:
wait时别的线程可以访问锁定对象 (调用wait方法的时候必须锁定该对象)
Wait方法在java.lang.Object中,是Object类的方法,
sleep时别的线程也不可以访问锁定对象
5、线程同步:
synchronized(this){
.......
......
}
当执行这段代码的过程中锁定当前对象
6、常用方法:
public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。
public static Thread currentThread() 返回对当前正在执行的线程对象的引用。
public static void sleep(long millis)
throws InterruptedException 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。
public final void setPriority(int newPriority) 更改线程的优先级。
public final int getPriority() 返回线程的优先级。
Thread.currentThread()----------------->拿到当前线程
public static Thread currentThread()返回对当前正在执行的线程对象的引用。
public final void join()throws InterruptedException等待该线程终止。
本文出自 “远方_chen” 博客,请务必保留此出处http://chenshirong.blog.51cto.com/3945427/996769
相关文章推荐
- Java多线程学习与总结(ThreadGroup)
- java学习笔记多线程学习总结(下)
- Java多线程要点分析总结
- Java总结篇:Java多线程
- Java 多线程总结
- java-多线程总结
- java多线程总结(4)
- Java总结篇系列:Java多线程(一)
- Java【多线程知识总结(10)】线程通信之wait()与notify()的运用--模拟指挥官指挥2个连队交替轰炸战区
- java多线程总结
- 多线程总结Java Runtime.exec() hangs
- Java——多线程总结及ThreadLocal、Volatile、synchronized、Atomic四个关键字
- java多线程总结二:后台线程(守护线程)
- 40个Java多线程问题总结
- JAVA多线程与并发学习总结
- Java多线程总结之线程安全队列Queue
- Java多线程系列采摘总结
- java多线程的总结
- JAVA篇_多线程零碎知识总结
- Java多线程基础知识总结笔记