电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java高級多線程編程(一)--關于線程的停止問題

瀏覽:110日期:2024-07-03 08:27:55
內容: 多線程是java的一個優勢,java使得程序員可以很方便的進行多線程程序開發。獲得更好的性能。 關于多線程的概念以及一般的多線程編程,比如如何以及為何實現runnable接口,為何stop()會被Deprecated掉等等,這個請看matrix之前的多線程編程基礎或者sun的java文檔。 關于多線程編程,有幾點這里要提到的:1。既然stop()是不被推薦的,那么我們如何停止一個線程呢?直接kill嗎?在這里,筆者總結一種比較通用也比較穩定的方法:class threadtest extend Thread{//skip some code.. boolean runflag=true; public synchronized void stopthread() { runflag=false; } public synchronized boolean getrunflag() { return runflag; } public void run() { runflag=true; try { while (getrunflag()) { code1; code2; //put your code here } } } catch (IOException e) { e.printStackTrace(); } System.out.println(this.getClass().getName()+' stopped'); }//skip some code..} 這樣,每當需要停止該線程時,只需調用stopthread()即可。這里有兩點需要注意:1)我們用了一個同步方法getrunflag()來得到當前的狀態,為什么用這個方法而不是直接使用while(runflag)呢? 這個是因為在java的多線程模型中,有一個公共的對象存儲區,但是每個對象都有自己的私有備份,當一個線程改變了狀態,jvm并不能保證這個線程改變過的變量即時更新公共對象存儲區的狀態,可能(可能性不大)造成問題。所以建議有好的設計習慣,采用同步方法來獲得當前的runflag值。2)還有一點,特別是涉及網絡的多線程,如果發生了網絡阻塞(在while循環里面發生),那么,即使runflag狀態比如改變成false,由于程序被阻塞,線程用這種方法是永遠都不會被停止的。 舉個例子:比如上面的程序,如果code1是一段網絡程式,如果在code1發生了阻塞,阻塞的意義就是得不到請求的資源,在無限期等待,這個時候,runflag狀態的變化對while循環是起不了作用的,線程不會被停止。 筆者曾經參與多個涉及到獲取網絡資源的java程式,經常遇到因為網絡的阻塞引起的線程問題。 如果你的程式可能涉及到網絡阻塞,或者有可能發生某種消息接受的阻塞。那么,請不要用這種方法來停止線程。具體方法請看筆者另外一片文章:高級多線程編程(二)-多線程中的監控與超時問題。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
主站蜘蛛池模板: 合金ICP光谱仪(磁性材料,工业废水)-百科 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 北京中创汇安科贸有限公司 | 佛山市德信昌电子有限公司| 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 安徽泰科检测科技有限公司【官方网站】 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 | 仿古建筑设计-仿古建筑施工-仿古建筑公司-汉匠古建筑设计院 | 广州昊至泉水上乐园设备有限公司| 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 |