zoukankan      html  css  js  c++  java
  • 多线程

    1、

      创建一个线程的方法,实现Runnable接口或者继承Thread都有一个run方法,但是不推荐继承Thread:应该将要并行运行的任务与运行机制解耦合。

      java.lang.Thread 1.0

      Thread(Runnable target)   构造一个新线程,用于调用给定目标的run()方法。

      void start()    启动这个线程,将引发调用run()方法。这个方法将立即返回,并且新线程将并发运行。

      void run()    调用关联Runnable的run方法。

      java.lang.Runnable 1.0

      void run()  必须覆盖这个方法,并在这个方法中提供所要执行的任务指令。

    package Thread;
    
    public class Thread1  {
    
        public static void main(String[] args) {
    
        Runnable r=new Runnable() {
    
            @Override
            public void run() {
                System.out.println("Thread1111.。。。。。。。。。");
            }
        };
            Thread t=new Thread(r);
            t.start();
        }
    
    }

    2、线程中断

      当线程的run方法执行方法体中最后一条语句后,并经由执行return语句返回时,或者出现了在方法中没有捕获的异常时,线程将终止。

      

      java.lang.Thread 1.0

      void interrupt()   向线程发送中断请求。线程的中断状态将被设置为true。如果目前该线程被一个sleep调用阻塞,那么,InterruptedException异常被抛出。

      static boolean interrupted()  测试当前线程(即正在执行这一命令的线程)是否被中断。注意,这是一个静态方法。这一调用会产生副作用--它将当前线程的中断状态重置为false。

      boolean  isInterrupted()  测试线程是否被终止。不像静态的中断方法,这一调用不改变线程的中断状态。

      static Thread currentThread()  返回代表当前执行线程的Thread对象。

      当一个线程调用interrupt方法时,线程的中断状态将被置位。这是每一个线程都具有的boolean标志。每个线程都应该不时地检查这个标志,以判断线程是否被中断。

      要想弄清中断状态是否被置位,首先调用静态的Thread.currentThread方法获得当前线程,然后调用isInterrupted方法:

      但是,如果线程被阻塞,就无法检测中断状态。这是产生InterruptedException异常的地方。当一个被阻塞的线程(调用sleep或wait)上调用interrupt方法时,阻塞调用将会被Interrupted Exception异常中断。

        

        有两个非常类似的 方法:interrupted和isInterrupted。Interrupted方法是一个静态方法,它检测当前线程是否被中断。而且,调用interrupted方法会清楚该线程的中断状态。另一方面,isInterrupted方法是一个实例方法,可用来检验是否有线程被中断。调用这个方法不会改变中断状态。

        java.lang.Thread 1.0

      void interrupt()   向线程发送中断请求。线程的中断状态被设置为true。如果目前该线程被一个sleep调用阻塞,那么,InterruptedException异常被抛出。

      static boolean interrupted()  测试当前线程(即正在执行这一命令的线程)是否被中断。注意,这是一个静态方法。这一调用会产生副作用--它将当前线程的中断状态重置为false。

      boolean isInterrupted()  测试线程是否被终止。不像静态的中断方法,这一调用不改变线程的中断状态。

      static Thread currentThread()  返回代表当前执行线程的Thread对象。

    3、线程状态

      

    坚持就是胜利
  • 相关阅读:
    根据包路径输出类列表
    Logback配置
    接口的幂等性
    mock获取入参数并动态设置返回值
    linux,日志查找技巧
    scrapy 一些坑
    Pyinstaller打包附带DLL、图标和压缩EXE方法
    scrapy 爬虫教程
    买房
    Python: 在CSV文件中写入中文字符
  • 原文地址:https://www.cnblogs.com/xiaotieblog/p/8559372.html
Copyright © 2011-2022 走看看