首页 > 代码库 > Java——多线程
Java——多线程
进程:
是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)
线程:
- 线程是轻量级的进程
- 县城没有独立的地址空间(内存空间)
- 线程是由进程创建的(寄生在进程中)
- 一个进程可以拥有多个线程——多线程编程
- 线程的五种状态:新建状态new、就绪状态Runnable、运行状态Running、阻塞状态Blocking、死亡状态Dead
多线程:
就是程序同时完成多件事情,Java语言提供了并发机制,程序员可以在程序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机制被称为多线程。
实现线程的两种方式:
1、继承Thread类,并重写run函数
案例01:创建ThreadTest类,实现从10到1的逐个输出。
1 public class ThreadTest extends Thread{ 2 private int count = 10; 3 public void run() { 4 while(true){ 5 System.out.println(count+""); 6 if(--count==0){ 7 return; 8 } 9 }10 } 11 public static void main(String[] args) {12 new ThreadTest().start(); 13 }14 }
完成线程正真功能的代码放在run()方法中,在main 方法中,执行线程需要调用Thread类中的start方法,start方法调用被覆盖的run()方法,如果不调用start()方法,线程永远都不会启动,在主方法没有调用start方法之前,Thread对象只是一个实例,而不是一个真正的线程。执行结果如下:
2、实现Runnable接口,并重写run函数
如果程序员要实现其他类,还要使当前类实现多线程,可以通过Runnable接口来实现,使用Runnable接口启动新线程的步骤如下:
- 建立Runnable对象
- 使用参数为Runnable对象的构造方法创建Thread实例
- 调用start()方法启动线程
案例02:创建Demo01类,实现每隔一秒输出一个“heloworld”,输出10次停止运行。
1 public class Demo01 { 2 3 public static void main(String[] args) { 4 //启动线程 5 Dog dog=new Dog(); 6 Thread t=new Thread(dog); 7 t.start(); 8 } 9 10 }11 class Dog implements Runnable{12 int times=0;13 public void run(){14 while(true){15 try {16 Thread.sleep(1000); //休眠1秒,这里用1000毫秒表示17 } catch (Exception e) {18 e.printStackTrace();19 }20 times++;21 System.out.println("hello world"+" "+times);22 if(times==10){23 break;24 }25 }26 }27 }
运行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。