美文网首页
java多线程

java多线程

作者: 闫子扬 | 来源:发表于2018-05-02 11:05 被阅读0次

两种实现多线程的区别

  • 1.继承thread类的,是由子类重写run,调用start,他是直接找到子类的run方法。

  • 2.实现runnable接口,是创建thread类时传入runnable的引用。thread记住这个成员。调用时判断runnable引用是否为空,调用runnable的run方法。

  • 3.继承thread的问题是,如果已经有父类了,那么就不能使用了

  • 4.即使自己定义的类有了父类,但是我们可以实现接口。这样完成多线程定义。

匿名多线程的实现

// 匿名类实现多线程

//1.集成thread匿名类

new Thread("芙蓉姐姐"){

@Override

public void run() {

for (int i = 0; i < 100; i++) {

//Thread.currentThread() 获取当前线程对象  getname()获取到线程的名字

System.out.println(Thread.currentThread().getName()+"=>"+i);

}

}

}.start(); //启动线程

//2.实现runnable接口匿名类

new Thread(new Runnable() {

@Override

public void run() {

for (int i = 0; i < 100; i++) {

//Thread.currentThread() 获取当前线程对象  getname()获取到线程的名字

System.out.println(Thread.currentThread().getName()+"=>"+i);

}

}

},"凤姐").start();

获取多线程名称方法 Thread.currentThread() 获取当前线程对象 getname()获取到线程的名字

线程休眠 使用sleep(毫秒)当前线程休眠后会让出CPU时间片给其他线程使用,经过毫秒后会再次执行

守护线程 使用setDeamon() 设置一个线程为守护线程,该线程不会单独执行,当其他非守护线程执行结束时自动退出。守护线程本质上和普通线程没什么区别,唯一的区别就是在虚拟机的离开,如果User Thread(用户线程)全部撤离,则守护线程就没有服务对象了也就撤离。典型的就是java垃圾回收线程

Join() 插入到线程,令当前线程暂停,等待指定的线程执行结束后,当前线程在继续

线程优先级。 设置优先级使用的 setPriority 尽可能先执行优先级高的线程,但不保证一定先执行

(资源互斥)线程的同步问题,当多个线程访问公共资源(临界资源)时为了保证线程安全性。也就是同一时刻只袁旭一个线程访问公共资源,我们使用同步代码块,来达到锁定资源的目标

synchronized (obj) { //多线程访问时,锁定共享资源,一个线程访问是,其他要等待期结束后 ,才能进入同步快

}

也可采用锁对象,来做同步

private Lock lock = new ReentrantLock();

lock.lock();//在进入锁

lock.unlock();

(线程协同工作)同步问题:有时我们线程间的执行有顺序要求。如何让指定线程工作或等待。

线程死锁。多线程同步时,如果多代码嵌套,使用了相同的锁,就可能出现死锁。

线程的声明周期

  • 创建 new

  • 就绪 start

  • 运行 run

  • 阻塞 sleep

  • 死亡 程序运行结束

相关文章

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

  • 带你搞懂Java多线程(六)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四)带...

  • Java多线程目录

    Java多线程目录 Java多线程1 线程基础Java多线程2 多个线程之间共享数据Java多线程3 原子性操作类...

  • java多线程--Callable

    **移步[java多线程系列文章]Java多线程(二十二)---LockSupport工具Java 停止线程 一、...

  • android 多线程 — 线程的面试题和答案

    这里都是我从各个地方找来的资料,鸣谢: Java多线程干货系列—(一)Java多线程基础 JAVA多线程和并发基础...

  • 5月份第一周学习安排

    学习内容: java多线程及线程同步的方法(使用) java多线程各种同步方法的原理和优缺点 java多线程设计模...

  • 带你搞懂Java多线程(四)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三) 什么是线程间的协作 线程之间...

  • Java基础(六)

    多线程 Java多线程并发 1.1 JAVA 并发知识库 1.2 JAVA 线程实现/创建方式 1.2.1 继承 ...

  • (五) volatile关键字

    Java多线程目录 1 背景 理解Java多线程的内存抽象逻辑请阅读java多线程内存模型,当代操作系统,处理器为...

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

网友评论

      本文标题:java多线程

      本文链接:https://www.haomeiwen.com/subject/tywqrftx.html