java多线程编程基础讲解

讲解java多线程的问题之前,我们需要了解两个概念:

1.进程:可以先简单理解为,就是我们开发的完成某种部分功能的程序代码在CPU中跑起来之后的样子。所以进程应该是操作系统分配的内存空间+1个或多个线程组成的。

2.线程:可以理解为组成进程的一些代码流,这些代码流跑起来就叫线程。线程不能单独存在,它必须依托线程。

举个例子:

public class ArrayListTest {
	public static void main(String[] args) {
		ArrayList s = new ArrayList();
		s.add("first");
		s.add("second");
		s.add(1, "third");
		for(String k : s){
			System.out.println(k);
		}
	}
}
上面代码跑起来就叫一个进程,功能是打印出一个ArrayList集合内容。显然,这个进程只有一个线程。
现在想同时让这个进程打印好几种内容,每种内容由一个线程去完成。

我这里是用实现Runable接口的方式实现多线程编程的。

//创建一个Thread1线程类
public class Thread1 implements Runnable {
	@Override
	public void run() {
		for(int i=0;i<5;i++){
			System.out.println("Thread1: 线程Thread1执行的内容!"+i);
		}	
	}
}
//创建一个Thread2线程类
public class Thread2 implements Runnable{
	@Override
	public void run() {
		for(int i=0;i<5;i++){
			System.out.println("Thread2: 线程Thread2执行的内容!"+i);
		}
	}
}
然后在主类中执行定义的两个线程,让这两个线程同时执行,完成各自的功能任务。

public class RunThread {
	public static void main(String[] args) {
		//定义线程要执行的目标对象
		Thread1 th1 = new Thread1();
		Thread2 th2 = new Thread2();
		
		//创建线程,设置线程执行对象和线程名称
		Thread ta = new Thread(th1,"A");
		Thread tb = new Thread(th2,"B");
		
		//执行线程
		ta.start();
		tb.start();
	}
}
运行主类之后,我们可以看到,两个线程ta,tb都得到了执行,而且每次打印顺序都不一样,因为两个线程再主进程中是并发执行的。






你可能感兴趣的:(java)