多线程基础整理1

(1)定义:

     1-多线程:一个应用程序有多条[执行路径]
	 2-单线程:一个应用程序只有一条执行路径
	 
     3-线程:是进程的[执行单元,执行路径],是程序使用CPU的最基本单位
             是进程中的单个顺序控制流,是一条执行路径
	 4-进程:[正在执行的应用程序],是系统进行资源分配和调用的独立单位
	         每一个进程都有它自己的内存空间和系统资源		

(2)多线程的实现方案

    1-继承Thread类
	  步骤:
	     1-自定义类继承Thread类
	     2-自定义类重写run()方法
	     3-创建自定义类对象
	     4-启动线程
	
	--直接调用run()方法,就相当于普通的方法调用
	
	2-实现Runnable接口
		步骤:
		  1-自定义类实现Runnable接口
		  2-自定义类重写public void run()方法
		  3-创建自定义类对象
		  4-创建Thread类的对象,并把3步骤的对象做构造参数传递
	  
        --同一个对象调用多次start(),会产生非法的线程状态异常,多线程--多个对象  
    3-多线程实现的第三种方案:前提是有线程池和实现Callable接口

在这里插入图片描述

(3)线程的调度和优先级问题

    1-线程的调度
		1.分时调度:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片
		2.抢占式调度 (Java采用的是该调度方式):优先让优先级高的线程使用CPU,
		  如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取的CPU时间片相对多一些
		
	2-获取和设置线程优先级
	    public final int getPriority()--返回线程对象的优先级
	    public final void setPriority(int newPriority)--更改线程对象的优先级
		--非法参数异常:
			1.默认是5
			2.范围是1-10
			线程优先级高仅仅表示线程获取的CPU时间片的几率高,但因为随机性,要多次运行才能看到效果

(4)线程的控制(常见方法)

	 1-休眠线程--public static void sleep(long millis)-毫秒
	 2-加入线程--public static void join()-等待该线程终止
	 3-礼让线程--public static void yield()-暂停当前正在执行的线程对象,并执行其他线程
	            让多个线程的执行更和谐,但不能靠它保证一人一次
	 4-后台线程--public static void setDaemon(boolean on)-将此线程标记为守护程序线程或用户线程。
	              当运行的唯一线程都是守护程序线程时,Java虚拟机将退出
				  必须在启动(start)线程之前调用此方法。
			
	 5-终止线程(掌握)--public static void stop()-让线程停止,已过时
	                --public void interrupt()-中断线程,把线程状态停止,抛出一个异常

(5)线程的生命周期

	 1-新建--创建new Thread线程对象
	 2-就绪--调用了start()方法之后,该线程处于就绪状态
	 3-运行--执行run方法的线程代码块,则该线程处于运行状态
	 4-阻塞--调用sleep()或线程在等待wait()某个通知(notify)。
	 5-死亡--run()方法执行完成,线程正常结束。
	         线程抛出一个未捕获的Exception或Error

在这里插入图片描述

(6)多线程安全问题

   1)原因:
       1-是否有多线程环境
		2-是否有共享数据
		3-是否有多条语句操作共享数据
   2)同步解决线程安全问题
      1-同步代码块:被synchronized关键字修饰的语句块,内置锁:同一个数据。
			synchronized(同一数据) {
				需要被同步的代码;
			}
	  	   注意:同步可以解决安全问题的根本原因就在那个同一数据上
	 2-同步方法:在方法定义上使用Synchronized关键字修饰,锁对象默认用this或前类class对象
		public Synchronized  数据返回类型  方法名(){}

在这里插入图片描述
在这里插入图片描述
多线程基础整理2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值