Java--线程基础知识学习初步记录(1)
2017-12-10 18:54
507 查看
Java--线程基础知识学习初步记录(1)
1.Runable接口:
所以,即使实现了Runnable接口,那也无法启动线程,必须依托其他类。
而Thread类,有一个构造方法,参数是Runnable对象,也就是说可以通过Thread类来启动Runnable实现的多线程。
二,Thread类:
thread实现了Runnable接口, 属性name表示线程的名字, priority表示线程的优先级,daemon表示是否是守护线程,
以下是关系到线程运行状态的几个方法:
1)start方法
start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程来执行用户定义的子任务,在这个过程中,会为相应的线程分配需要的资源。
2)run方法
run()方法是不需要用户来调用的,当通过start方法启动一个线程之后,当线程获得了CPU执行时间,便进入run方法体去执行具体的任务。注意,继承Thread类必须重写run方法,在run方法中定义具体要执行的任务。
3)sleep方法
sleep方法有两个重载版本:
sleep相当于让线程睡眠,交出CPU,让CPU去执行其他的任务。
但是有一点要非常注意,sleep方法不会释放锁,也就是说如果当前线程持有对某个对象的锁,则即使调用sleep方法,其他线程也无法访问这个对象。看下面这个例子就清楚了:
1.Runable接口:
所以,即使实现了Runnable接口,那也无法启动线程,必须依托其他类。
而Thread类,有一个构造方法,参数是Runnable对象,也就是说可以通过Thread类来启动Runnable实现的多线程。
二,Thread类:
thread实现了Runnable接口, 属性name表示线程的名字, priority表示线程的优先级,daemon表示是否是守护线程,
以下是关系到线程运行状态的几个方法:
1)start方法
start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程来执行用户定义的子任务,在这个过程中,会为相应的线程分配需要的资源。
2)run方法
run()方法是不需要用户来调用的,当通过start方法启动一个线程之后,当线程获得了CPU执行时间,便进入run方法体去执行具体的任务。注意,继承Thread类必须重写run方法,在run方法中定义具体要执行的任务。
3)sleep方法
sleep方法有两个重载版本:
sleep(long millis) //参数为毫秒 sleep(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒
sleep相当于让线程睡眠,交出CPU,让CPU去执行其他的任务。
但是有一点要非常注意,sleep方法不会释放锁,也就是说如果当前线程持有对某个对象的锁,则即使调用sleep方法,其他线程也无法访问这个对象。看下面这个例子就清楚了:
相关文章推荐
- Java——Thread线程基础知识学习
- 1109学习记录 java script 基础知识实例
- Java基础知识学习记录
- java基础知识回顾之java Thread类学习(十二)-- 线程中断
- java学习笔记(1)-基础知识记录
- java线程安全-基础知识
- Java学习基础知识
- Java Media Framework 基础教程(学习JMF中,看到好的中文教程,在这里记录下来)
- java基础知识记录--集合 (摘自张孝祥整理java面试题)
- java基础知识记录--基本语法 (摘自张孝祥整理java面试题)
- java学习笔记-线程的初步研究
- 黑马程序员Java培训、Android培训-Java 学习过程记录_语言基础3
- java基础知识记录--类相关语法 (摘自张孝祥整理java面试题)
- java基础知识记录--异常 (摘自张孝祥整理java面试题)
- 黑马程序员Java培训、Android培训_Java 学习过程记录_语言基础2
- Java Media Framework 基础教程(学习JMF中,看到好的中文教程,在这里记录下来)
- 几个比较好的java学习网站(Struts,Servlet,jar源码,hibernate,java基础知识)
- java线程学习基础