线程相关知识(安卓)

线程:继承Object

APP	->	进程  ->	多线程

主线程+子线程
主线程耗时超过5s将会报错ANR;耗时操作:网络请求、数据库操作、图片编辑

1.子线程:(handle,Message,MessageQueue,looper)

1.1.创建( 熟练掌握)

		(1).直接继承thread,重写run方法。
			Thread(new Runable(){
				@override 
				void run (){
				
				}
			})
		
		(2).实现runable方法,传给Thread。
			new Thread()
		
			**注意**
				Thread参数(ThreadGourp,Runnable target,name,AccessControlContext acc)
			
				init(ThreadGourp,Runnable target,String name,long stackSize,AccessControlContext acc)
				
				if (name == null) {throw new NullPointerException("name cannot be null");}//name一般为系统分配
				
				parent = currentThread()
				group , runable,daemon,priority 可以使用parent的
				
				
				**新建的线程必须执行 thread.start()方法才会开始执行。
				
				*thread.start被synchronized所修饰
				
				*Thread类本身只实现runable接口

1.2.线程的状态

		*初始状态(NEW)	new Thread
		
		*可运行状态(RUNABLE)	start执行进入就绪状态	执行run方法,表示正在执行或者可以执行状态。
		
		*等待状态(WAITING)
		
		*阻塞状态(BLOCKED)	阻塞状态	
		
		*等待特定时间(TIMED_WAITING)
		
		*结束状态(TERMINATED)	执行run方法完毕,或遇到异常退出
		
		**
		线程结束之后,线程销毁,只能新建无法返回销毁之前的状态和数据

1.3.各种方法(start,join……)

		具体线程的方法:
		
			start():	开始启动
			
			run():		执行run函数
			
			join():		让目标线程加入到当前的线程中执行,当前线程进入WAITING状态
			
			wait():		如果要让某个线程进入wait状态,必须对该线程设置 Synchronized(Object):同步锁
						
						使线程进入WAITING状态
			
						如果设置具体等待时间,线程进入TIMED_WAITING状态
						
			notify():	用于唤醒处于Wait状态下的对象
						
						和wait相对应,都需要设置 Synchronized同步锁,

			***不加同步锁的话,程序会出现异常
		
		Thread方法:
			
			sleep()

1.4.主线程交互( 熟练掌握)

		1.4.1:Handle+message
	
		1.4.2:runOnUiThread(runable)
		
		1.4.3:handle.post
		 
		
	1.5.线程停止( 了解)
	
		1.5.1.volatile关键字:
				其他线程可见

3.Synchronized(Object):同步锁

4.AsyncTask:(对Thread的封装) ***API level 30中被弃用

	异步任务:封装好的线程池,但是最多同时运行5个此类的线程。
	
	创建时需要定义三个继承自Object的参数:O1,O2,O3
	
	TasK内有四个主要的方法步骤需要执行:(按照执行逻辑)
		
		(1).protected void onPreExecute()
			做TASK的开始准备
		
		(2).protected 返回第三个参数 doInBackground(传入第一个参数)
			主要的执行逻辑代码
			publishProgress(第二个参数)	这个方法会通知第三步执行
			return 之后通知第四个步骤进行执行
			
		(3).protected void onProgressUpdate(第二个参数)
			做出视图更新
			
		(4).protected void onPostExecute(第三个参数)
			任务完成的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值