Java中的多线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的多线程相关的知识,希望对你有一定的参考价值。
一.概念及特点
1.概念
进程:计算机运行的应用程序。(多进程作用:提高CPU的使用率,不提高速度);
线程;一个进程中的执行场景,一个进程可以包多个进程。(多线程作用:提高应用程序的使用率,不提高速度)。
2.内存特点
进程和进程之间的内存是独立的;
线程和线程共享“堆内存的方法区内存”,栈内存是独立的,一个线程一个栈。
3.java程序的运行原理
Java命令启动Java虚拟机,启动JVM,等同于启动了一个应用程序,、表示启动了一个进程,该进程会自动启动一个“主线程”,然后主线程去调用某个类的main方法,所 以 main方法运行在主线程中。
二.线程的创建和启动
1.实现多线程的第一种方式:
第一步: 继承Java.lang.Thread
第二步;重写run方法
例:
1 class Threadtest01 2 { 3 public static void main(String[] args) //main方法在主线程 4 { 5 //1.创建线程 6 Thread t = new p(); 7 //2.启动线程 8 t.start(); /*启动t线程,执行后,t线程瞬间结束,JVM再分配一个新的栈给t线程 9 run方法不需要手动调用,系统线程启动之后自动调用run方法。*/ 10 11 for(int i=0;i<100;i++) //在主线程中运行 12 { 13 System.out.println("main....."+i); 14 } 15 } 16 } 17 /* 18 在多线程中,main方法结束后只是主线程踪没有方法栈帧了,但 19 其他线程中或者其他栈中还有栈帧,main方法结束,程序可能还在运行 20 */ 21 22 //3.定义一个线程 23 class p extends Thread 24 { 25 //重写run方法 26 public void run () 27 { 28 for(int i=0;i<100;i++) 29 { 30 System.out.println("run...."+i); 31 } 32 } 33 } 34 /* 35 运行部分结果如下: 36 main.....0 37 main.....1 38 main.....2 39 run....0 40 main.....3 41 run....1 42 main.....4 43 run....2 44 main.....5 45 run....3 46 main.....6 47 run....4 48 main.....7 49 run....5 50 main.....8 51 run....6 52 */
上述代码的图解如下:
2.实现多线程的第二种方式:
第一步:写一个实现类java,lang.Runnable;接口
第二步:实现run方法
例:
1 package test; 2 3 class Main 4 { 5 public static void main(String[] args) 6 { 7 //创建线程 8 Thread t = new Thread(new p()); 9 //启动线程 10 t.start(); 11 for(int i = 0;i<100;i++) 12 System.out.println("mian..."+i); 13 14 } 15 } 16 //优先,一个类实现接口之外保留了类的继承 17 class p implements Runnable 18 { 19 public void run() 20 { 21 for(int i = 0;i<100;i++) 22 System.out.println("run..."+i); 23 } 24 } 25 /* 26 * 部分运行结果: 27 * run...8 28 mian...10 29 run...9 30 mian...11 31 run...10 32 mian...12 33 run...11 34 mian...13 35 run...12 36 */
以上是关于Java中的多线程的主要内容,如果未能解决你的问题,请参考以下文章