当前位置: 首页 > news >正文

服饰网站模板企业网站程序源码

服饰网站模板,企业网站程序源码,安卓开发快速入门,第三方公司做网站价格单核cpu与多核cpu#xff1a; 线程的并发和并行问题 多线程的创建#xff1a; 多线程程序创建#xff1a;java.lang.Thread(实现了Runnable接口) // 1定义一个类实现Runnable接口#xff0c;重写run方法#xff08;run方法中设置线程任务#xff09;…单核cpu与多核cpu 线程的并发和并行问题 多线程的创建 多线程程序创建java.lang.Thread(实现了Runnable接口)         //            1定义一个类实现Runnable接口重写run方法run方法中设置线程任务new一个Thread参数对象将实现类当作参数传进去(可以用匿名内部类)         //                用Thread对象点start方法开启线程可以用匿名对象         //            2将一个类继承Thread类重写run方法创建这个类对象调用start方法开启线程 线程安全问题  多线程程序无共享数据时无安全问题         //                多线程程序有共享数据时有安全问题         //        解决方案等待与唤醒机制让一个线程在访问共享数据时无论其是否失去CPU执行权让其他线程等待         //                同步代码块同步方法        ---Object类方法         //                Lock锁机制         //        线程间通信多线程在处理同一资源但处理过程线程任务不同为有效利用资源用等待与唤醒机制解决         //        线程安全解决同步代码块 synchronized 锁对象也叫对象监视器 { //访问共享数据或可能出现线程安全问题的代码}         //                        注意锁对象可以用任意对象其只是相当于一个形式但必须保证多线程使用的锁对象是同一个         //                        作用将同步代码块锁住只让一个线程在同步代码块中执行         //                        执行逻辑发现synchronized--发现锁对象--拿走其实是赋值---执行完代码块中内容--归还赋值         //                                                        ---被拿走了阻塞直到拿到锁定对象继续执行 Lock锁机制Lock接口抽象方法void Lock  void unLock         //                            实现类ReentrantLock类         //                            使用1 在类中方法外成员变量位置创建ReentrantLock对象         //                                2 在可能出现安全问题的方法前调用Lock方法         //                                3 代码后调用unLock方法 unLock可以在finally代码块中这样无论是否有异常都释放锁 线程池 线程池使线程得以复用不必频繁创建与销毁         //        底层原理创建一个集合List存储多个线程使用时Thread tList.remove(0)/removeFirst()取出          //                                        使用后List.add(t)/addLast() 归还         //        Executors类java.until包中         //            静态方法static ExecutorService newFixedThreadPoolint x 创建固定线程数量的线程池返回值是ExecutorService接口的实现类对象         //        ExecutorService接口java.until.concurrent包中         //            抽象方法Feture? submit(Runnable task) 将线程放入池第一次调用并开启线程任务用完自动归还线程池         //                    void shutdown  销毁线程池         //        使用1 使用Executor类内静态方法newFixedThreadPool创建线程池         //            2 创建线程2种方法         //            3 调用ExecutorService接口中抽象方法submit使线程并入线程池第一次调用并执行线程任务执行run方法         //                    submit        继承Thread类的类的对象/    实现Runnable类的类的对象     / 实现Runnable类的类的对象用Thread包装后的Thread对象         //            4 调用ExecutorSerivce接口中shutdown方法销毁线程池不建议执行         //            5 匿名内部类线程可以放入但没有意义 线程注意 1 为什么不直接调用run方法而是要start         main线程start又一线程main线程不会阻塞的调用会阻塞的         主线程结束其他线程可能没有结束线程间基本不会收到影响除非自己设置                  直接调run方法就是主线程调用并没有开另一线程         源码:start方法源码会执行 start0方法这是一个人本地方法会另开线程             start0只是将线程转为了可运行状态【不一定会立即执行run】-》取决于cpu自己 控制线程退出         程序执行完自动退出         使用【变量】控制run方法的退出run方法退出线程就结束了             给主线程一个set方法主线程就可以控制其退出了 Thread补充方法             设置/获取线程优先级             setPriority     MAX_Priority 10     等3个常量             getPriority         interrupt             中断线程但是不是结束线程所以一般用于中断休眠的线程唤醒它                  yield让出cpu让其他线程执行但是礼让时间不确定所以也不一定礼让成功              cpu资源越紧张礼让的对象占用cpu越大礼让的成功率就越高                 -》cpu不会认为它跑的过来就听你的先跑礼让的         join让线程插队一定先执行完插入线程的所有任务              用户线程和守护线程         用户线程就是工作线程         守护线程为工作线程服务的当所有用户线程结束守护线程自动结束             常见的守护线程垃圾回收机制             将一个线程设置为守护线程                 主线程开启t1线程t1无限循环主线程退出要求t1线程也退出-》将t1做成守护线程             在主角线程设置守护线程 陪葬品线程.setDaemontrue就行了             但是要先设置再启动 陪葬品线程否则有异常                  线程的生命周期         Thread的state是enum枚举类型有6个取值也就是有6种状态                  new 尚未启动         runnable正在执行  ready和running  即使是running态其运行也要看操作系统和cpu调度的         blocked被阻塞等待         waiting等待 另一个线程的特定动作         timeed_waiting等待另一个线程执行达到某一指定时间         terminated已退出的线程                  Thread的getState方法可以获得状态              线程死锁         a线程必须拿到b线程的占用资源才释放锁         但是同时b线程必须拿到a的资源才释放锁                  你先完成作业才能玩手机         你先让我玩手机才写作业          线程释放锁的情况         同步方法完成         同步方法有break/return         出现未处理的异常/error不得已释放锁         调用锁对象的wait方法【线程会暂停并释放锁】              线程不会释放锁的情况         sleep方法线程会暂停但不会释放锁         yield方法线程会暂停但不会释放锁         尽量不再使用/过时的方法             线程正在执行其他线程调用该线程的suspend方法将该线程挂起该线程不会释放锁             resume方法会结束其挂起             状态图的runnable状态的线程挂起【注意】 【重要】一个线程控制另一个线程         需要在线程中有 控制线程的对象 构造方法给其赋值set方法赋值         或者在构造方法中将其设置为守护线程         但是注意守护线程不是正常退出而是立即中断可能有代码执行不到         所以还是用第一种比较好用变量进行控制              【重要】多线程共享数据与安全         锁的对象一定要是一个         数据量小可能一直是一个线程
http://www.pierceye.com/news/986815/

相关文章:

  • 青岛低价网站建设达内it教育官网
  • 洛阳设计网站公司个人网站管理系统
  • 怎么可以预览自己做的网站天津市城乡建设网站
  • 本地网站开发宁夏建设工程招标投标信息网站
  • 网站建设服务费怎么记账维护一个网站一年多少钱
  • 电子商务网站建设定位设想我的网站为什么打不开
  • 旅游网站开发方案ppt移动商城积分和积分区别
  • 如何做网站推广自己的产品WordPress+百度+主动
  • 商丘网站建设推广公司赣州seo唐三
  • 产品网站设计计算机专业做网站运营
  • 做平台网站怎么做的wordpress获取当前分类下的子分类
  • 广州网站建设性价比长安高端装备网站设计公司
  • 电子商务网站推广计划沈阳建设工程造价
  • 网站备案接入商是什么网站语言版本
  • 个人做网站做什么样的话网站站点连接不安全
  • 响应式网站 外贸平顶山 网站设计
  • 手袋 东莞网站建设成都哪里好玩适合情侣
  • 苏州哪个公司做门户网站给学校建网站那个系统好
  • 现在网站都是拿什么软件做的wordpress 自动alt
  • 山东省住房和城乡建设部网站首页网站中的自助报价系统
  • 如何 网站收录软件开发大概需要多少钱
  • 网站建设微信端简洁型网页
  • 一般的网站开发语言用什么《网站开发实践》 实训报告
  • php企业网站开发实验总结服务器
  • 织梦网站文章内容模板荣耀商城
  • seo 网站太小平面设计师招聘广告文案
  • 凡科网站建设桂林网站开发m0773
  • 做跨境都有哪些网站做电影类网站
  • 琼海商城网站建设东莞网站建设价位
  • 装饰网站建设重要性云服务器 多个网站