【Java】多线程的使用

简而言之:一个程序是由进程组成,一个进程是由线程组成的。一个程序中可以存在多个进程,一个进程中可以存在多个线程。

单线程:一条主线执行下去,没有分支。

public class TestMain {
	public static void main(String[] args) {
		method2("I LOVE JAVA");
	}
	public static void method1(String str) {
		System.out.println("method1...");
		System.out.println(str);
	}
	public static void method2(String str) {
		System.out.println("method2...");
		method1(str);
	}
}

先执行main、接着执行method2、最后执行method1。

多线程:一条主线执行下去,有多个分支。也就是有多个分支会抢占CPU资源。

class SubThread1 extends Thread{
	public void run() {
		for(int i=1;i<=100;i++) {
			if(i%2==0) {
				System.out.println(Thread.currentThread().getName()+":"+i);
			}
		}
	}
}
class SubThread2 extends Thread{
	public void run() {
		for(int i=1;i<=100;i++) {
			if(i%2!=0) {
				System.out.println(Thread.currentThread().getName()+":"+i);
			}
		}
	}
}
public class TestThread {
	public static void main(String[] args) {
		SubThread1 st1= new SubThread1();
		SubThread2 st2= new SubThread2();
		
		st1.start();
		st2.start();
	}
}

运行部分结果:

Thread-0:2
Thread-1:1
Thread-0:4
Thread-1:3
Thread-0:6
Thread-1:5
Thread-0:8
Thread-0:10
Thread-0:12
Thread-0:14
Thread-0:16
Thread-1:7
......

我们可以了解到多线程的使用不管是并发还是并行(多线程可能被分配到一个CPU内核中执行,也可能被分配到不同CPU执行),该方式都提高了CPU资源的利用率。

猜你喜欢

转载自blog.csdn.net/dylan_me/article/details/80931626
今日推荐