多线程:就是进程的扩展,实现并发。一个进程可以包含多个线程,进程一般是由操作系统控制,而线程就是由程序员控制的,所以作为编程人员做好线程是我们的重点。

线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。

进程是操作系统同时执行多个任务,其实也不是同时执行,就是把多个任务分成就绪、运行-->就绪、运行切换,CPU执行速度太快,所以感觉是同时执行。

多线程是指在同一程序中有多个顺序流在执行,从而实现并发性。

创建线程有两种方法:继承Thread;实现Runnable接口;通过匿名内部类实现Runnable接口

1.继承Thread,然后重写run()方法,再然后就是启动线程.start().

Class Thread1 extends Thread{

@Override
public void run() {}

}

2.实现Runnable接口,然后重写run()方法,再然后就是启动线程.start().

Class Thread2 implements Runnable{
@Override
public void run() {}
}

Thread2 th=new Thread2();
Thread th1=new Thread(th);//创建线程对象
th1.start();//启动线程

3.通过匿名内部类实现Runnable接口,然后在匿名内部类中重写run()方法,再然后就是启动线程.start().

Thread th=new Thread(new Runnable(){

@Override
public void run() {}

});

线程休眠

Thread.sleep(500);//500表示500毫秒
Thread.currentThread().getName()//获得线程默认的名字
Thread.currentThread().SetName("th1")//设置线程名

Thread和Runnable的区别

1.如果一个类继承Thread,则不适合资源共享。但是如果实现了Runnable接口的话,则很容易的实现资源共享。

继承Thread 创建的对象是单独的线程,而实现Runnable其实是同一个线程。

2.实现Runnable接口比继承Thread类的优势:

1):适合多个相同的程序代码的线程去处理同一个资源

2):可以避免java中的单继承的限制

3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立

为了不让同一个对象不被多个线程同时访问,引入锁的概念(Synchronized),加锁之后当这个对象被线程1访问就会上锁,之后的线程想访问只能等线程1访问结束。引入锁保证了安全性。

最新文章

  1. 七个结构模式之代理模式(Proxy Pattern)
  2. view和activity的区别
  3. Coursera台大机器学习课程笔记13 -- Regularization
  4. UVa 839 天平
  5. ASP.NET中JSON的序列化和反序列化
  6. 《白手起家Win32SDK应用程序》(完整版+目录)
  7. 挖一下插件v1.5版本发布
  8. Phone APP设计规范/iPad APP设计规范/Android APP设计规范/网页设计规范
  9. 你应该学会的Postman用法
  10. ThinkPHP删除栏目(单)
  11. mysql命名规范
  12. python学习心得--编码格式篇
  13. 使用chcache 缓存
  14. 2017-2018-2 20165237 实验四《Android开发基础》实验报告
  15. Accumulator<Long> implements of JavaSparkContext in Spark1.x
  16. oem 重建
  17. collection my favoriate websites
  18. JDK10 新特性
  19. MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题
  20. 【LOJ】#2077. 「JSOI2016」飞机调度

热门文章

  1. 旧文备份: CANopen的LSS子协议中文翻译
  2. git(osChina上分支的使用)
  3. dubbo 与Spring Cloud 对比
  4. JS - 把类似document.querySelectorAll(".xxx")、document.getElementsByName("xxx")这种方法的返回结果转换成数组对象
  5. Shell学习——Shell分类:登录shell和非登陆shell 交互shell和非交互shell
  6. TP5 行为Behavior用法说明
  7. 改进的平台设备驱动——dev和drv完全分离
  8. PLY手册翻译
  9. HDU 2222 AC自动机(模版题)
  10. linux-shell——04