JAVA 线程000

参考资料
1 Java线程:概念与原理
http://lavasoft.blog.51cto.com/62575/99150
2 Java 程序中的多线程
http://www.ibm.com/developerworks/cn/java/multithreading/
网上参考了很多资料,感觉不系统呀,还是自己写吧
1 进程
现在几乎每种操作系统都支持进程的概念 —— 进程就是在某种程度上相互隔离的、独立运行的程序,Windows为例,在任务管理器中你可查看到当前操作系统中各个进程的使用情况,如下:

其中你所看到:java.exe,qq.exe都是一个进程, 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程.
2 线程
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。其实你在不知不觉之中已经使用到了java的线程.如 AW T (抽象窗口工具箱 Abstract W i ndow i ng Tool ki t) )或 Sw i ng UI 工具箱、servl et 容器、应用程序服务器和 RM I(远程方法调用(Rem ote M ethod Invocati on)).
3 创建线程
在java创建线程有二种方式,继承Thread类或者实现Runnable 接口.
示例A 继承Thread类
Java代码   收藏代码
  1. public class MyThread extends Thread {  
  2.       
  3.     @Override  
  4.     public void run() {  
  5.         System.out.println("咫尺天涯的第一个线程(Thread)启动了。。。");  
  6.     }  
  7.   
  8. }  

Java代码   收藏代码
  1. public class Main {  
  2.       
  3.     public static void main(String[] args) {  
  4.       
  5.         MyThread myThread = new MyThread();  
  6.         myThread.start();  
  7.           
  8.     }  
  9. }  

注意事项:因为它继承了Thread类,它就已经有了启动线程的方法,start(),你要做的事情放到run()方法里面去.
它有一个不好的地方是:你也可以不@Override,也行,那么就是什么事情也做不了
示例B 实现Runnable接口
Java代码   收藏代码
  1. public class MyRunnable implements Runnable {  
  2.   
  3.     @Override  
  4.     public void run() {  
  5.         System.out.println("咫尺天涯的第一个线程(Runnable)启动了。。。");  
  6.   
  7.     }  
  8. }  

Java代码   收藏代码
  1. public class Main {  
  2.       
  3.     public static void main(String[] args) {  
  4.           
  5.         MyRunnable myRunnable = new MyRunnable();  
  6.         //myRunnable.start();此处编译报错,没有这个方法:start          
  7.     }  
  8. }  

注意事项:你的子类实现了Runnable接口,就没有启动线程的方法,也因为这样大家觉得直接继承Thread类会方便很多,在实际运用中,推荐大家使用实现Runnable接口来使用线程,因为它更具有面向对象的思想。如何启动呢,请看下面!
Java代码   收藏代码
  1. public class Main {  
  2.       
  3.     public static void main(String[] args) {          
  4.           
  5.         MyThread myThread = new MyThread();  
  6.         Thread thread = new Thread(myThread);  
  7.         thread.start();  
  8.           
  9.         MyRunnable myRunnable = new MyRunnable();         
  10.         Thread runnable = new Thread(myRunnable);  
  11.         runnable.start();  
  12.           
  13.     }  
  14. }  

总结如下:它使用是是传递一个线程对象的方式给Thread类,实现启动线程.启动线程的方法是:start(),用户真正想要做的事情放到run()方法中去执行.
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页