多线程笔记 迷南。 2022-05-29 08:00 181阅读 0赞 > > # 1. **进程和线程的区别** # > > > (1) 根本区别:**进程**作为资源分配的单位,**线程**调度和执行的单位 > > > > > > # 2. **java 下实现多线程** # > > > (1) 继承Thread 重写run。 > > > 实用线程:创建子类对象\+调用.statt()方法。 > > > (2) 实现Runnable接口\+重写run()方法 > > > ① 静态代理 设计模型 > > > **//接口 ** > > > ![20180320130829261][] > > > **//真实角色** > > > ![20180320130846397][] > > > **//代理角色** > > > **![20180320130858510][]** > > > ②实现接口,实现动态代理 > > > ![20180320130958659][] > > > 总结:1.推荐使用接口,避免单继承局限性 > > > 2.便于共享资源 > > > (3)Callable接口**可以有返回值,可以抛异常** > > > 重写call() > > > ![20180320131012061][] > > > # 3. **线程的状态** # > > > ![20180320131107317][] > > > (1) 新生状态 > > > (2) 就绪状态 > > > (3) 运行状态 > > > (4) **阻塞状态** > > > (5) 死亡状态 > > > ① 停止状态 > > > 建议使用:(1.外部终止2.自然结束)自带的方法具有不确定性。 > > > ② 阻塞状态 > > > Join 合并线程\-à等待该线程终止 > > > Yield 暂停自己线程 写在哪里暂停哪里线程\-à静态方法 > > > Sleep 休眠,不释放锁 > > > **1)与时间相关 ** > > > **2)模拟网络延迟** > > > # **4.同步:并发** # > > > 保证:线程安全 多线程下 > > > Synchronize----à同步 > > > ① 同步块 > > > Synchronized(类.class|引用类型|this)\{ > > > \} > > > ![20180320131133136][] > > > ② 同步方法 > > > ![20180320131140882][] > > > 总结:**锁的范围不宜过小\---à导致线程不安全** > > > ** 锁的范围不宜过大\--à影响效率** > > > ** ** > > > 一个简单的单例模式\----》 是线程不安全的 > > > ![20180320131208612][] > > > > > > 不仅线程安全,而且效率高(双重检查) > > > ![20180320131226971][] > > > 另一种单例的优化 > > > ![20180320131244180][] > > > **注意:过多的同步锁,容易造成死锁。** > > > # 4. **生产者消费者模式** # > > > 生产者消费者是为了解决多线程中容易死锁的问题。 > > > Wait()+notify()+Synchronized 配合使用 > > > # 5. **任务调度** # > > > ① 一个简单的任务调度Demo > > > ![20180320131307785][] > > > ② Quartz 第三方jar包 > > > > > > > > > > > > > > > > > > > 希望能帮到大家。大家如果有兴趣可以来我的网站看看:[http://www.jiegelo.com][http_www.jiegelo.com] [20180320130829261]: /images/20220529/1221481d37c2497584aa532387a3325d.png [20180320130846397]: /images/20220529/64935d6e02cf4a31ac5d45b05c86120f.png [20180320130858510]: /images/20220529/40a514e9512f4eae98920d4d8f02a185.png [20180320130958659]: /images/20220529/c0b68ddac71543d198e3de639956825f.png [20180320131012061]: /images/20220529/ea69a634579449c79e2a4681c572ed80.png [20180320131107317]: /images/20220529/6fc58a2c87ce4cf3a82390ef0f4a7099.png [20180320131133136]: /images/20220529/5cc2f135a63c4f968687e09913497a2d.png [20180320131140882]: /images/20220529/6576a5b210804a1e887f9f2d8cbb70fe.png [20180320131208612]: /images/20220529/308363b9e9e64ea19f129f3eb1f0ab28.png [20180320131226971]: /images/20220529/4d7beff854f242fd90bdc2a2c76840f7.png [20180320131244180]: /images/20220529/b23d096481f248849713c7dffba88809.png [20180320131307785]: /images/20220529/d64e9a2b6ce640edbcbcdc3c1839d800.png [http_www.jiegelo.com]: http://www.jiegelo.com
还没有评论,来说两句吧...