【安卓学习笔记】JAVA基础-线程

多进程:在操作系统中能(同时)运行多个任务(程序)
多线程:在同一应用程序中有多个顺序流(同时)执行

一个线程是用一个线程对象表示的

创建线程的方法
1.定义一个线程类,它继承Thread并重写其中的方法run(),方法run()称为线程体;
由于Java只支持单继承,用这种方法定义的类不能在继承其他的类。

class FirstThread extends Thread{
	public void run(){
		for(int i=0;i<100;i++)
			System.out.println("FistThread-->"+i);
	}
}

class Test{
	public static void main(String args[])
	{
		//生成线程类的对象
		FirstThread ft = new FirstThread();
		ft.start();//启动线程
		
		//ft.run();//千万不能这样写
		//这样写就直接执行run方法里面的内容而没有体现出线程
	}
}
以上代码运行的时候有三个线程
1.主函数线程
2.ft线程
3.垃圾回收线程
class Test{
	public static void main(String args[])
	{
		FirstThread ft = new FirstThread();
		ft.start();
		
		for(int i=0;i<100;i++){
			System.out.println("main-->"+i);
		}
	}
}
修改成如上代码之后就能体现出线程与线程的执行关系了,运行结果如下
main-->0
FistThread-->0
FistThread-->1
main-->1
FistThread-->2
main-->2
FistThread-->3
main-->3
main-->4
FistThread-->4
main-->5
main-->6
FistThread-->5
main-->7
FistThread-->6
FistThread-->7
FistThread-->8
...
多线程在运行的时候是没有规律的,也就是说每次运行的先后顺序可能都不一样,也不可控

2.实现线程的第二种方法,这也是相对方法一更常用的方法
class RunnableImpl implements Runnable{
	public void run()//对run进行复写
	{
		for(int i=0;i<100;i++)
			System.out.println("Runnable-->"+i);
	}
}

class Test{
	public static void main(String args[])
	{
		//生成一个Runnable接口实现类的对象
		RunnableImpl ri = new RunnableImpl();
		//生成一个Trread对象,并将Runnable接口实现类的对象作为参数
		//传递给该Thread对象
		Thread t = new Thread(ri);
		//通知Thread对象执行方法
		t.start();
		
		for(int i=0;i<100;i++){
			System.out.println("main-->"+i);
		}
	}
}
中断线程
Thread.sleep(nms);//让出CPU等待nms后进入就绪状态等待抢占CPU
//使用时需要用到try...catch结构
Thread.yield();//让出CPU进入就绪状态

设置线程的优先级
getPriority()//取得优先级
setPriority();//设置优先级
//线程的有先级最大是Thread.MAX_PRIORITY = 10 

//最小是Thread.MIN_PRIORITY = 1;优先级越大被执行到的概率也就越大


By Urien 2018年4月14日 14:07:34

猜你喜欢

转载自blog.csdn.net/qq997758497/article/details/79879504