栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

并发与多进程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

并发与多进程

进程与线程

进程:是正在运行的程序

  • 是系统进行资源分配和调用的独立单位
  • 每一个进程都有它自己的内存空间和系统资源

线程:是进程中的单个顺序控制流,是一条执行路径

继承Thread类的方法实现多线程

步骤:

1.自定义类MyThread继承Thread类

2.MyThread类里面重写run();
为什么是重写run()方法呢?
不是类中的所有代码都需要被线程执行,而这个时候,为了区分那些代码能够被多线程执行,Java提供了Thread类中的run()方法,用来包含那些被线程执行的代码

3.创建对象

4.启动线程

例子:

public class MyThread extends Thread{
//在MyThread类中重写run方法
@Override
	public void run() {
		for(int i = 0; i < 3; i++) {
			System.out.println(this.title + "运行:= " + i);
		}
}

public class test {
	public static void main(String[] args) {
		// 创建线程对象
		MyThread my = new MyThread();
		//启动线程
		my.run();
		my.run();
		
		MyThread my = new MyThread();
		my.start();
		my.start();//IllegalThreadStateException:非法的线程状态异常
		//为什么呢?
		//因为这是相当于my线程别调用了两次。而不是两个线程的启动
		
		//创建两个线程
		MyThread my1 = new MyThread();
		MyThread my2 = new MyThread();
		
		my1.start();
		my2.start();
	}
}

Runnable接口的方法实现多线程


Tips:java中类能实现多个接口但最多只能继承一个类

同步方法和同步代码块和Lock锁 同步代码块

有synchronized修饰符修饰的语句块,被该关键词修饰的语句块,将加上内置锁。实现同步。
例:synchronized(Object o ){}

同步方法

用 synchronized 关键字给针对共享资源进行操作的方法加锁。一个方法使用 synchronized 关键字修饰后,当一个线程A使用这个方法时,其他线程想使用这个方法时就必须等待,直到线程A使用完该方法。
例:
public void sell()—>public synchronized void sell()

注意:
静态同步方法的锁是给该类的 类对象 加锁。
非静态同步方法其实就是给 this对象 进行加锁。

同步是高开销的操作,因此尽量减少同步的内容。
通常没有必要同步整个方法,我们可以选择只同步会发生问题的部分代码而不是整个方法。

Lock锁

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号