zoukankan      html  css  js  c++  java
  • 一、java多线程编程核心技术之(笔记)——多线程的实现

    概念:可以理解为在进程中独立运行的子任务。比如,QQ.exe在运行时就有很多子任务在运行,好友视屏线程,下载文件线程,传输数据线程等等。

    优点:1、提升CPU资源利用率,提升系统性能。

    一、多线程的实现

         1.1、继承Thread类(extends Thread),Thread类实现了Runnable接口

         

    public class Thread implements Runnable
    public class MyThread extends Thread{
        @Override
        public void run() {
            System.out.println("MyThread");
        }
    
    }

         1.2、实现Runnable接口(implements Runnable)

    public class MyThread implements Runnable{
        @Override
        public void run() {
            System.out.println("MyThread");
        }
    
    }

              注意:使用继承Thread类来开发多线程应用设计上有局限性的,因为JAVA不支持多继承,为了改变这种限制,可以使用实现  、实现Runnable接口(implements Runnable)的方式来实现多线程。 

         1.3、多线程的随机性 :使用多线程时,代码的运行结果和代码的执行顺序或调用顺序无关。

        验证:

    View Code

      结果:

        1.4、非线程安全:指多个线程对同一对象中同一个变量进行操作时会出现值被更改,值不同步的情况,进而程序的运行。

    非线程安全

      使用解决synchronized 关键字解决非线程安全问题

    View Code

       

    currentThread():返回代码段正在被哪个线程调用。

    isAlive():判断当前线程是否处于活动状态。

    sleep():指定毫秒数让正在执行的线程休眠。

    getId():取得线程的唯一标识

     二、停不了的线程

     1、判断线程是否是停止状态

      java 的SDK中,Thread.java类里提供了俩中方法

                              this.interrupted():测试当前线程是否已经中断,执行后具有将状态标识清除为false的功能。

                              this.isInterrupted();测试线程是否中断,但不将清除状态标识。

    View Code

  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/aGboke/p/6516503.html
Copyright © 2011-2022 走看看