天天看点

多线程之并发编程(一)

一、进程

首先,进程代表运行中的程序,也就是一个Java程序代表一个进程,也可以理解为是一个应用程序。
其次进程包括线程,从开发的角度来看,每一个线程都是进程中可独立执行的子任务。一个进程包含多个线程。
           

二、线程

在Java中线程分为两大类:**守护线程** 和 **用户线程**
守护线程:当进程不存在或主线程停止,守护线程也会被停止,通常守护线程执行一些重要性不是很高的任务(监视其他线程的运行情况)
用户线程:是用户自己创建的线程,主线程结束后,用户不会停止。用户线程会阻止JVM无法停止。即JVM结束之前所有的用户线程都必须执行完毕,否则JVM无法停止。
           

三、多线程的创建

多线程的创建分为以下三种:
	继承Thread类(重写run方法)、实现Runnable接口(重写run方法)、通过匿名内部类实现
	一般情况下如果要用以上三种方式实现多线程  建议还是实现Runnable,因为实现了之后还可以继承别的类,继承了则不能再次继承。
           

1、继承Thread类

class CreateThread extends Thread {
    	// 执行run方法
    	public void run() {
    		for (int i = 0; i< 10; i++) {
    			System.out.println("i:" + i);
    		}
    	}
    }
    public class ThreadDemo {
    	public static void main(String[] args) {
    		System.out.println("<<<<<< 多线程创建开始  >>>>>>");
    		// 1.创建一个线程
    		CreateThread createThread = new CreateThread();
    		// 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
    		System.out.println("<<<<<<  多线程创建启动  >>>>>>");
    		createThread.start();
    		System.out.println("<<<<<<  多线程创建结束  >>>>>>");
    	}
    
    }
           

2、实现Runnable接口

class CreateRunnable implements Runnable {
	@Override
	public void run() {
		for (int i = 0; i< 10; i++) {
			System.out.println("i:" + i);
		}
	}
}
public class ThreadDemo {
	public static void main(String[] args) {
		System.out.println("<<<<<<  多线程创建开始  >>>>>>");
		// 1.创建一个线程
		CreateRunnable createThread = new CreateRunnable();
		// 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
		System.out.println("<<<<<<  多线程创建启动  >>>>>>");
		Thread thread = new Thread(createThread);
		thread.start();
		System.out.println("<<<<<<  多线程创建结束  >>>>>>");
	}
}
           

3、匿名内部类实现

System.out.println("<<<<<<  多线程创建开始  >>>>>>");
		 Thread thread = new Thread(new Runnable() {
			public void run() {
				for (int i = 0; i< 10; i++) {
					System.out.println("i:" + i);
				}
			}
		});
	thread.start();
	System.out.println("<<<<<<  多线程创建结束  >>>>>>");
           

以上是多线程创建的方式,使用多线程的好处可以提高程序效率。一般工作中使用线程池来创建线程,进行统一的线程管理,降低了资源的浪费,提高了相应速度。

不对的地方请指出来 ,谢谢!!!

继续阅读