• 线程笔记


    线程的命名和取得:
     线程的运行每一次都会运行不同的结果,因为各线程会自行抢占资源,如果要区分线程的名称,一般情况下是在线程执行之前进行命名,而不建议在
    启动之后再修改它的名称,或者是为不同的线程设置重名
     对线程的名称进行操作有一下几种方法:
     Thread(Runnable target, String name)
     public final void setName(String name)设置线程名称
     public final String getName()返回线程名称
     public static Thread currentThread()返回对当前正在执行的线程对象的引用
     public final void setPriority(int newPriority)更改线程的优先级。
     
     一般情况下,对线程的操作基本都是在Thread类里面
     
     对于线程名字的操作,会有以下问题:
     如果是实现的Runnable接口,但是对名称操作的方法却是在Thread类里面,那么如何取得线程并修改名称呢?
     
     线程在抢占资源的时候在任何一个时间点有且只有一个线程在运行,所以可以取得运行时候的线程对象——>
     Thread类里面提供了一个currentThread()方法,返回对当前正在执行的线程对象的引用,然后就可以执行操作了。
     
     
     线程的休眠:所谓的线程休眠就是样线程的执行速度变得缓慢一点。
     public static void sleep(long millis,int nanos)throws InterruptedException
     
     
     线程同步与死锁:
     死锁是由于存在多个线程同步时,某种逻辑错误造成的问题,并且不是简单情况下就会出现的,它是突发的
     
     多个线程访问同一个资源时需要考虑到哪些情况?会造成什么问题?
      在处理多线程访问统一资源的时候,要注意同步问题,可以通过同步方法或者同步代码块来解决
      同步方法:synchronized(锁定对象){代码块}
      同步代码块:public synchronized 返回值 方法名(){}
      过多的同步可能会造成死锁
      
      
      同步操作于异步操作相比,异步操作的速度更快,但是同步操作的安全性更高,
                            
                     
     
     
     

  • 相关阅读:
    iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试
    java中接口的定义与实现
    2014年百度之星程序设计大赛
    MyEclipse7.0破解下载
    C++中的explicitkeyword
    抽象工厂模式
    《Head First 设计模式》学习笔记——策略模型
    MFC原创:三层架构01(人事管理系统)DAL
    Design Pattern Singleton 单一模式
    C学习笔记之预处理指令
  • 原文地址:https://www.cnblogs.com/Mindreader/p/5474426.html
Copyright © 2020-2023  润新知