IDEA项目结构
项目 》 模块 》 包 》类
成员变量
this
表示本类,super
表示父类
使用
this.
访问变量
this()
访问构造方法
this.()
访问方法
构造方法
线程与进程
进程对应正在运行的应用程序
线程
是进程中的执行路径
- 多线程指一个进程中有多条执行路径
- 单线程指一个进程只有一条执行路径
多线程的实现方式
继承Thread类
- 定义一个类继承
- 在类中重写run()方法
- 创建MyThread类的对象
- 启动线程
- void start() 导致线程开始执行;开始调用run方法
写runnable类
好处在于可以继承父类,适合多个相同程序的代码去处理同一个资源
Thread类
无参构造方法
Thread () {
this(null,null,"Thread" + nextThreadNum(),0);
}
带参构造方法
Thread(ThreadGroup group,Runnable target,String name,long stackSize)
getName获得名称
Java使用抢占式调度模型
- getPriority() 获取优先级
- setPriority() 设置优先级
- 优先级在10,1之间,默认为5
方法
- sleep(long milis) 使正在进行的线程停留指定的毫秒数
- join()等待这个线程死亡
- setDaemon(boolean on) 标记为守护线程。当运行的线程都是守护线程时,java虚拟机退出
- 获取主线程 Thread.currentThread()
线程的生命周期
- 创建线程对象
- start(),获得cpu资格,但没有执行权。
- run()结束或用stop()结束,成为垃圾
- 若执行过程中被其他线程抢夺。回到2,有资格但没执行权
- 若使用sleep等方法,进入阻塞状态。
线程的随机性
线程同步
将多个线程使用的同一个数据锁起来,只允许一个线程执行
synchronized(任意对象)
同步方法
将synchronized
加到方法上