java多线程
多线程可以实现多个任务同时并发执行。
线程:进程中负责程序执行的执行单元
线程本身依靠程序进行运行
线程是程序中的顺序控制流,只能使用分配给程序的资源和环境
多线程的实现方法
必须使用start()方法启动线程。
1.继承Thread类,必须覆写run()方法。
2.实现Runnable接口,必须覆写run()方法,同时一般需要继承Thread类中的start()方法启动线程,因为Runnable是接口(特殊抽象类),接口中只具有抽象方法。
因为多线程的任务是竞争处理器资源进行处理,如果有实现的顺序的要求,必须对不同的线程进行加锁。
匿名内部类必须存在于接口或抽象类的基础上
继承Thread类
package *;
class A extends Thread{
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("人之初"+i);
}
}
}
class B extends Thread{
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("性本善"+i);
}
}
}
public class San {
public static void main(String[] args) {
new A().start();
new B().start();
}
}
运行结果

实现Runnable接口
package *;
class X implements Runnable{
//接口要继承runnable里面的start方法
@Override//注解:准确覆写
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("你好"+i);
}
}
}
class Y implements Runnable{
@Override
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("世界"+i);
}
}
}
public class Yi {
public static void main(String[] args) {
X x=new X();
new Thread(x).start();
new Thread(new Y()).start();
}
}
运行结果

匿名内部类方法
package *;
public class Si {
public static void main(String[] args) {
new Thread(new Runnable() {
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("和尚念经"+Thread.currentThread().getName()+" "+i);
}
}
},"t1").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("道士讲经"+Thread.currentThread().getName()+" "+i);
}
}
},"t2").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("和尚念经"+Thread.currentThread().getName()+" "+i);
}
}
},"t3").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("道士讲经"+Thread.currentThread().getName()+" "+i);
}
}
},"t4").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("和尚念经"+Thread.currentThread().getName()+" "+i);
}
}
},"t5").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("道士讲经"+Thread.currentThread().getName()+" "+i);
}
}
},"t6").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("和尚念经"+Thread.currentThread().getName()+" "+i);
}
}
},"t7").start();
new Thread(new Runnable() {
public void run() {
for (int i = 0; i <100; i++) {
System.out.println("道士讲经"+Thread.currentThread().getName()+" "+i);
}
}
},"t8").start();
}
}
oraclepeixun

浙公网安备 33010602011771号