多进程:每启动一个应用程序就启动了一个进程。
多线程:一个应用程序有多个顺序流同时执行。
进程下有线程
Thread:线程
单线程:一条一条指令顺序执行
多线程:两个流程同时执行,跳来跳去执行,其实是一个执行一段时间,调到另一个执行。时间较短,看起来像是同时执行的。
-
多线程运行没有规律
启动多线程:对象 .start()不是 对象.run() !!!
线程是进程中的进一步分支
控制线程的常见函数
实际开发过程中能不用继承就不用,因为java里面是单继承,只能继承一个类。所以一般用接口。如runnnable接口
Thread.sleep() 休眠 ;休眠以后不会马上进入运行,会进入准备状态。单位是毫秒
Threda.yield() 自动让出CPU,然后再抢CPU
t为一个对象
优先级: t.getPriority();
设置最大/小优先级: t.setPriority(Thread.MIN_PRIORITY);
线程的优先级最大是10最小是1可以使用Thread所提供的静态常量来设置线程的优先级。
优先级越高执行的概率越大,不是一定最先执行。
--------------------------------------------------------------------
Java4Android 第三十八集
多线程用同一数据会产生错误
同步:synchronized(this), this就是一把锁,谁拿到谁执行代码。
一旦某一线程获得了一个对象的同步锁,那么,这个对象上所有被同步的代码其它的线程通通都不能执行,但是同步锁不会影响非同步的代码。
同步方法和同步代码块功能相似,不过同步代码块可以指定究竟锁定哪一个对象,而同步方法锁定的就是this。
同步方法: public synchronized void fun()
同步代码块:public void fun() {
synchronized(this)