读书笔记之《Java编程思想》

17. 容器

Set

存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。

Set接口不保证维护元素的次序

Map

映射表(关联数组)的基本思想是维护的是键-值(对)关联,因此可以用键来查找值。

基本方法

Map.put()
Map.get()

21. 并发

  • 阻塞:

如果程序中的某个任务因为该程序控制范围之外的某些条件(通常是I/O)而导致不能继续执行,那么我们就说这个任务或线程阻塞了。

Java的线程机制是抢占式的。

一个线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务。


LiftOff任务将显示发射之前的倒计时:

public class LiftOff implements Runnable{
    protected int countDown = 10;
    private static   int taskCount =0;
    private final int id=taskCount++;
    public LiftOff(){
        this.countDown=countDown;
    }

public String status(){
    return "#"+id +"("+(countDown>0 ? countDown:"LiftOff !")+").";
}

public void run(){
    while(countDown-->0){
    System.out.println(status());
    Thread.yield();
        }
    }
}

/*************************************************************/

public class ThreadPro {
    public static void main(String [] args){
        for(int i=0;i<5;i++)
            new Thread(new LiftOff()).start();
        System.out.println("Waiting for LiftOff !");
    }
}

  • 执行器(Executor)

Executor允许你管理异步任务的执行,而无需显式地管理线程的生命周期。


  • 优先级

线程的优先级将该线程的重要性传递给了调度器。

尽管CPU处理现有线程集的顺序使不确定的,但是调度器将倾向于让优先权最高的线程先执行。

另外会让优先级较低的线程执行的频率较低,故而优先权不会导致死锁。

u=1444271841,2904428413&fm=26&gp=0.jpg

转载于:https://www.cnblogs.com/daminzhou/p/8372547.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值