2020-09-21

1HashMapHashTableConcurrentHashMap 之间的区别, 及性能对比

 

性能concurrenthashMap线程安全, haspMap非线程全, HashTable 线程安全

区别:

  1. hashmap是非线程安全hashtable是线程安全
  2. hashmap的键允许null值存在hashtable不允许
  3. hashmap效率高hashtable线程低
  4. hashtable是同步的hashmap不是线程同步
  5. hashmap适用于单线程hashtable不适用于单线程一般不建议使用hashtable
  6. hahsptable使用的是sunchronized关键字修饰conurrhashmap是使用了锁分段技术老保证线程安全

 

2Java多线程

2.1什么是线程?线程和进程的区别

线程:是进程的一个实体,是比进程小的独立运行经本单位

区别:

线程的划分尺度小于进程,使线程程序拥有高并发性,

进程:运行时内存是独立的

线程:线程之间,内存共享

 

2.2创建线程有几种方式

1继承thread

实现了runnable接口的一个实例,代表一个进程的实例,

2实现runnable接口

如果类已经extends另一个类,无法直接extendsThread可以实现runnable接口

3实现Callable接口

实现callable接口实现类,实现call()方法

创建callable实现类的实例tt

使用futuretable类包装callable的实例tt

以futretask对象作为thread的target来实例线程并启动

调用futuretask对象的get()方法获得返回值

 

4什么是线程池

1线程池就是将多个线程对象放到容器中不用new可以直接使用提高了效率

 

2常用的线程池

单线程的线程池

固定大小的线程池

可缓存的线程池

大小无限线程池

 

5线程池的基本方法

1线程等待

会释放对象的锁

2线程睡眠

Sleep不会释放当前占有的锁

3线程让步

让出CPU执行时间片

4线程中断

线程的一个通信信号影响这个线程内部的一个中断标识位

5Join等待其他线程终止

Join()方法

6线程唤醒

在对象监视器等待带个线程,直到当前的线程放弃对象上的锁定,才能执行被唤醒的线程

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值