多线程的学习

线程

  1. 三种创建方式

    1. Thread class(继承类)//需要重写run方法
    2. Runnable (接口)
    3. Callable(接口) !!!
  2. 主方法需要调度的是start方法,不是run方法

  3. Callable接口的好处

    1. 可以定义返回值
    2. 可以抛出异常
  4. 静态代理模式:

    1. 真实对象和代理对象都要实现同一个接口
    2. 代理对象要代理真实角色
  5. 代理对象可以代替真实对象做事情

  6. 真实对象可以做自己喜欢做的事情

  7. lamba表达式的符号表示为 ->,其基本结构形式为:(param1,param2,param3…)-> { }

    如果只有一个参数,可以不加小括号,只有一行执行代码,也可以没有箭头后面的大括号,比如 i ->System.Out.Println(i);

    如果没有参数 ,只需要一个小括号即可,比如:()-> System.Out.Println(“hello”);

    表达式只能有一行代码的情况下,才能简化为一行如果有多行,必修用代码块包裹

    前提是接口为函数式接口(接口只有一个方法)

    多个参数也可以去掉参数类型,要去掉就都去掉

  8. 可以通过接口创建对象

  9. 匿名内部类,没有类 的名称,必须借助接口或父类

  10. 测试stop

    1. 建议线程正常停止–>利用次数。不建议死循环,
    2. 建议使用标志位 -->设置一个标志位
    3. 不要使用stop或者destroy等过时或jdk不建议的方法
    4. 让线程自己停止下来,
  11. 没一个对象都有一把锁,sleep不会释放锁

  12. 礼让线程:礼让不一定成功,看CPG心情

  13. 切记,当线程进行循环的时候,要记得更新线程的状态

  14. 线程死亡之后不能启动

  15. 优先级高的代码块可以先运行,但是并不是绝对的按照优先级大小来运行,即性能倒置//先设置优先级,在启动

  16. sleep可以放大问题的发生性

  17. synchronized默认锁定的是this,可以通过同步块锁定一个对象

  18. 集合加泛型进行约束

  19. CopyOnWriteArrayList (JUIC并发包 )

  20. 线程池:ExecutorService 和 Executors

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值