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

    线程的命名和取得:
     线程的运行每一次都会运行不同的结果,因为各线程会自行抢占资源,如果要区分线程的名称,一般情况下是在线程执行之前进行命名,而不建议在
    启动之后再修改它的名称,或者是为不同的线程设置重名
     对线程的名称进行操作有一下几种方法:
     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 返回值 方法名(){}
      过多的同步可能会造成死锁
      
      
      同步操作于异步操作相比,异步操作的速度更快,但是同步操作的安全性更高,
                            
                     
     
     
     

  • 相关阅读:
    剑指offer-树的子结构
    剑指offer-二叉搜索树的后序遍历序列
    剑指offer-调整数组顺序使奇数位于偶数前面
    剑指offer-包含min函数的栈
    剑指offer-从上往下打印二叉树
    剑指offer-链表中倒数第k个结点
    剑指offer-合并两个排列的链接
    剑指offer-替换空格
    剑指offer-旋转数组的最小数字
    剑指offer-数字在排序数组中出现的次数
  • 原文地址:https://www.cnblogs.com/Mindreader/p/5474426.html
Copyright © 2011-2022 走看看