资讯专栏INFORMATION COLUMN

java并发之Thread和Runnable

darkbug / 1158人阅读

摘要:开发中不可避免用到多线程情况,比如中常见的都是运用到多线程,多线程的根本目的是为了更快的执行。其他常用到的多线程比如设计到大量操作用多线程可明显提升效率。中最基础的并发类就是是一个接口,只要实现实现,重写方法就可以实现多线程操作。

java开发中不可避免用到多线程情况,比如web中常见的Servlet、Struts2都是运用到多线程,多线程的根本目的是为了更快的执行。其他常用到的多线程比如设计到大量I/O操作,用多线程可明显提升效率。
java中最基础的并发类就是Runnable.class,Runnable是一个接口,只要实现实现Runnables,重写方法run() 就可以实现多线程操作。

举个实现Runnable的例子:

public class LiftOff implements Runnable {
  protected int countDown = 10; // Default
  private static int taskCount = 0;
  private final int id = taskCount++;
  public LiftOff() {}
  public LiftOff(int countDown) {
    this.countDown = countDown;
  }
  public String status() {
    return "#" + id + "(" +
      (countDown > 0 ? countDown : "Liftoff!") + "), ";
  }
  public void run() {
    while(countDown-- > 0) {
      System.out.print(status());
      Thread.yield();
    }
  }
} ///:~
 public static void main(String[] args) {
    Thread t1 = new Thread(new LiftOff());
    t1.start();
}

从这个例子中,可以看出在java中多线程的实现多线程是很简单的事,但是多线程的学习是易懂难通,会遇见死锁、逻辑混乱等各类问题,所以使用多线程必须慎之又慎。
Runnable之后有一个基础的并发类就是Thread.class,Thread就是实现了Runnable的一个类,但是在Runnable的基础上新增了一些方法包括:线程优先级、后台线程、分组、命名等,还是非常实用的。

因此我们一般使用多线程可以实现Runnable.class或者继承Thread.class.一般使用Runnable即可这样还可以继承其他类

好了本次文章就到这来,简单地说明了java多线程的一些知识,下次会关于多线程方法更深入的阐述。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67048.html

相关文章

  • 并发编程死锁解析

    摘要:如何检测死锁由于死锁极难通过人工的方式查出来,因此提供了命令来检测某个进程中心线程的情况,并排查有没有死锁。线程持有的锁,等待的锁。避免出现死锁,如果出现了死锁,则可以使用命令查看线程是否有死锁。 showImg(https://segmentfault.com/img/remote/1460000014936757); 前言 在 Java 的并发编程中,有一个问题需要特别注意,那就是...

    yy736044583 评论0 收藏0
  • Java 8 并发教程:线程执行器

    摘要:在这个示例中我们使用了一个单线程线程池的。在延迟消逝后,任务将会并发执行。这是并发系列教程的第一部分。第一部分线程和执行器第二部分同步和锁第三部分原子操作和 Java 8 并发教程:线程和执行器 原文:Java 8 Concurrency Tutorial: Threads and Executors 译者:BlankKelly 来源:Java8并发教程:Threads和Execut...

    jsdt 评论0 收藏0
  • JAVA并发编程-Volatile关键字及内存可见性

    摘要:的缺点频繁刷新主内存中变量,可能会造成性能瓶颈不具备操作的原子性,不适合在对该变量的写操作依赖于变量本身自己。 作者:毕来生微信:878799579 1. 什么是JUC? JUC全称 java.util.concurrent 是在并发编程中很常用的实用工具类 2.Volatile关键字 1、如果一个变量被volatile关键字修饰,那么这个变量对所有线程都是可见的。2、如果某条线程修...

    xcold 评论0 收藏0
  • Java并发编程多线程线程池

    摘要:目标线程由运行状态转换为就绪状态,也就是让出执行权限,让其他线程得以优先执行,但其他线程能否优先执行时未知的。函数的官方解释是意思是使调用该函数的线程让出执行时间给其他已就绪状态的线程。 线程允许在同一个进程中同时存在多个程序控制流,即通过线程可以实现同时处理多个任务的功能。线程会共享进程范围内的资源,例如内存句柄和文件句柄,但每个线程都有各自的程序计数器、栈以及局部变量。 多线程的实...

    wums 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<