java-多线程
Posted phililps
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-多线程相关的知识,希望对你有一定的参考价值。
拿qq比喻,进程就是一启动qq,qq本身所占用的资源进程,打开win资源管理器,看到的程序都是进程,而多个qq同时登陆就是多进程,
多线程就是打开一个qq后开启多个窗口和不同的人聊天,线程是属于进程的。
java是一种解释性语言,其所运行的程序都是在jvm中运行的,当启动一个java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程。jvm虚拟机的启动多线程的。
因为垃圾回收线程也要先启动,否则很容易会出现内存溢出。现在的垃圾回收线程加上主线程,最低启动了两个线程,所以,jvm的启动其实是多线程的
多线程是利用jdk中的一个工具类Thread实现的。
Java多线程实现方式主要有2种:实现Runnable接口、继承Thread类
1.实现Runnable接口:
public class lianxi1 implements Runnable{ String name ; @Override public void run() { for(int i=0;i<10;i++){ try { System.out.println(i+"-----------------"+name); Thread.sleep(100); } catch (InterruptedException e){ e.printStackTrace(); } } } } --------------------------------------------- public class class2{ public static void main(String[] args){ //也可以在lianxi1里面定义一个构造函数,这里直接new出来,下一个就是 lianxi1 t1 = new lianxi1(); t1.name ="xiawang"; lianxi1 t2 = new lianxi1(); t2.name ="xiaobai"; Thread t3 = new Thread(t1); t3.start(); Thread t4 = new Thread(t2); t4.start(); } }
2.继承Thread类:这种类直接extends Thread,并重写run()方法
public class lianxi1 extends Thread{ private String name; public lianxi1(String name) { this.name = name; } @Override public void run() { for(int i=0;i<10;i++){ try { System.out.println(i+"-----------------"+name); Thread.sleep(100); } catch (InterruptedException e){ e.printStackTrace(); } } } } ------------------------------------------- public class class2{ public static void main(String[] args){ lianxi1 t1 = new lianxi1("xiawang"); lianxi1 t2 = new lianxi1("xiaobai"); Thread s = new Thread(t1); Thread s2 = new Thread(t2); s.start(); s2.start(); } }
以上是关于java-多线程的主要内容,如果未能解决你的问题,请参考以下文章