欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java之多线程

程序员文章站 2023-12-23 15:27:10
...

进程: 一个内存中运行的应用程序
线程:
线程在进程的内部, 一个进程中可以有多个线程
多个线程并发执行可以提高程序的效率, 可以同时完成多项工作注意:多线程节约的是执行程序的等待时间,如果程序排列紧密, 没有等待时间, 多线程下并不能真正的提高效率

一.多线程的应用:
1.百度云同时下载多个任务
2.服务器同时处理多个任务请求

二. 线程并发与并行的区别
并行:就是多个任务同时运行(需要多核CPU)
并发:是指多个任务都请求运行,而处理器只能接受一个任务, 就把多个任务安排轮流进行, 由于时间间隔较短,使人感觉两个任务都在运行

三.多线程的实现方式一
继承Thread

public class ThreadDemo extends Thread{
}

重写run()方法 在run()方法中定义线程体

public void run() {
		for(int i=1;i<=20;i++){
			System.out.println("一边学习...");
		}

开启: 使用start()方法开启线程

public static void main(String[] args) {
		//开启多线程 创建线程
		ThreadDemo01 th=new ThreadDemo01();
		//开启线程
		th.start(); 
		//th.run();   如果直接而调用run方法的话注意:这是方法的调用,不是多线程的开启
		
		
		for(int i=1;i<=20;i++){
			System.out.println("一边打游戏...");
		}
		
		//th.start();   主线程中代码执行完毕,只剩下一个th线程,看不到线程切换的效果
	}
}

实现方式二
实现Runnable接口,重写run()方法 推荐
开启: 通过Thread类中start()开启线程
优点:
1.避免单继承的局限性
2.实现资源共享

public class ThreadDemo02 implements Runnable{

	//定义线程体的方法,当被调用的时候,会逐行执行里面的代码
	@Override
	public void run() {
		for(int i=1;i<=100;i++){
			System.out.println("一遍玩游戏...");
		}
	}
	
	public static void main(String[] args) {
		ThreadDemo02 th=new ThreadDemo02();
		//开启线程//创建线程
		Thread t=new Thread(th);  //因为开启线程的方法在Thread类中,Thread做为代理类出现
		t.start();
		
		for(int i=1;i<=100;i++){
			System.out.println("一遍学习...");
		}
	}
}

上一篇:

下一篇: