zoukankan      html  css  js  c++  java
  • 多线程笔记——1

    在学习多线程的时候首先我们要清楚一线问题:

    1进程:系统分配资源和调度的独立单位,线程: 进程中独立运行的子任务

    2多线程的实现方式  集成Thread类和实现Runnable接口

    3线程的执行顺序与调用顺序无关的,start()方法会通知“线程规划器”,由它启动一个线程来执行run()方法

    4Thread类其实也是实现的Runnable接口 其源码中定义为: class Thread implements Runnable

    5“互斥区”“临界资源”指的是加锁的代码块

    6println(i++)存在的线程安全问题,println是安全的,但是i++的执行是在println之前的

    7currentThread()返回的是当前正在被哪个线程调用的信息

    8isAlive() 是判断线程是否还活着,即已启动,尚未终止的线程

    9sleep()是让当前线程休眠,getId()是获取线程的唯一标示

    10 停止线程  Thread.stop() 暴力停止,释放锁后会产生不良后果,不建议使用。

                          interrupt,并不是停止,只是打了个停止的标记,但是线程还在 运行

                          判断线程的状态 this.interrupted执行后标志清除为false

                                                    this.isInterrupted 不清除标志

                         使用异常法来终止线程.,即对当前线程的状态进行判断,如果标记为停止就抛出一个异常,终止线程

                         如果线程在sleep状态下被停止,则会抛出异常

                        使用return方法来停止线程

    11暂停一个线程

    suspend()暂停 resume唤醒  缺点独占资源

    12 yield方法的作用是让线程放弃当前的cpu资源,但是可能刚放弃立马就获得

    13 线程的优先级

         分为1~10这10个等级,若果不在这个范围,就会抛出IllegalArgumentException()

        jdk有三个常亮来定义优先级

                 MIN_PRIORITY =1

                NORM_PRIORITY=5

               MAX_PEIORITY =10

    14 守护线程

        最典型的就是gc

  • 相关阅读:
    System.Diagnostics.Process.Start()
    Asp.Net 构架(HttpModule 介绍) Part.3
    Asp.Net 构架(Http Handler 介绍) Part.2
    Asp.Net构架(Http请求处理流程)
    Ruby 2.0 发布首个预览版
    Java基本数据类型及类型转换
    J2EE 1.4 APIs and Technologies
    java final 关键字
    Android获取通讯录
    Activity的四种加载模式(转载)
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9694881.html
Copyright © 2011-2022 走看看