Java学习Day1,多线程处理

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()

线程的生命周期

  1. 创建线程对象
  2. start(),获得cpu资格,但没有执行权。
  3. run()结束或用stop()结束,成为垃圾
  4. 若执行过程中被其他线程抢夺。回到2,有资格但没执行权
  5. 若使用sleep等方法,进入阻塞状态。

线程的随机性

线程同步

将多个线程使用的同一个数据锁起来,只允许一个线程执行

synchronized(任意对象)

同步方法

synchronized加到方法上

原文地址:https://www.cnblogs.com/lizinuo/p/15331157.html