• Java线程:概念及原理


     

         线程是执行的程序中的一个线程。 Java虚拟机允许应用程序必须同时运行多个执行线程。
      每个线程都有一个优先事项。具有更高优先级的线程优先于线程的优先级较低的执行。每个线程可能会或可能不会也被标记为一个守护进程。当某个线程中运行的代码创建一个新的Thread对象,新线程的优先级最初设置为创建线程的优先级,并且是守护线程当且仅当创建线程是守护进程。当Java虚拟机启动时,通常都会有单个非守护线程(它通常调用名为主要一些指定类的方法)。 Java虚拟机继续直至出现以下任何一种情况发生时执行线程: Runtime类的exit方法已经被调用并且安全管理器允许退出操作发生。 所有线程都没有守护线程已经死亡,要么通过调用run方法返回或通过抛出一个传播超越了run方法的异常。
      有两种方法来创建新的执行线程。一种是要声明一个类Thread的子类。这个子类应重写Thread类的run方法。子类的实例可以被分配和启动。另一种是继承Runnable接口,Runnable接口应该由任何类,其实例旨在由一个线程执行来实现。这个类必须定义的参数调用运行的方法此接口设计用于为那些希望已激活时,执行代码对象的公共协议。例如,Runnable接口是由Thread类实现。被激活仅仅意味着一个线程已启动并且尚未停止。此外,Runnable接口提供了一类是活跃的,而不是继承线程的手段。实现Runnable可以不通过实例化一个Thread实例,并在传递本身作为目标继承线程运行的类。在大多数情况下Runnable接口应该使用,如果你只打算重写run()方法,并没有其他线程的方法。

  • 相关阅读:
    Java8中findAny和findFirst的区别
    Lombok使用与原理
    java.util.ConcurrentModificationException异常原因及解决方法
    PacketTooBigException问题解决
    数据库中空字符串和NULL值两个概念的区别
    Java8采用stream、parallelStream迭代的区别
    Spring四大注解
    @Qualifier的作用和应用
    @resource和@autowired的区别是什么
    @Transactional注解详细用法
  • 原文地址:https://www.cnblogs.com/northeastTycoon/p/5594344.html
Copyright © 2020-2023  润新知