java多线程,怎么算出最佳的生产消费的配比比例? 知道吗,信用卡也有隐藏的

\u6d88\u8d39\u6bd4\u4f8b\u662f\u5982\u4f55\u8ba1\u7b97\u7684\uff1f

\u6d88\u8d39\u6bd4\u4f8b\u7684\u603b\u503c\u662f\u8d26\u5355\u7684\u4e8c\u7ea7\u9879\u76ee\uff08\u53d1\u7968\u9879\uff0c\u9664\u4f18\u60e0\u8d60\u9001\u7b49\u8d1f\u503c\u9879\u76ee\uff09\u7684\u5408\u8ba1\u3002\u4f8b\u5982\uff1a\u8d26\u5355\u7684\u5957\u9910\u8d39\u7528\u4e3a98\u5143\u3001\u6708\u57fa\u672c\u8d39\u7528\u4e3a10\u5143\u3001\u8bed\u97f3\u901a\u4fe1\u8d39\u4e3a5.6\u5143\u3001\u4e0a\u7f51\u53ca\u6570\u636e\u901a\u4fe1\u8d39\u4e3a10.3\u5143\u3001\u4f18\u60e0\u8d60\u9001\u4e3a-24\u5143\u6d88\u8d39\u6bd4\u4f8b\u7684\u8ba1\u7b97\u603b\u503c\u4e3a\u201c\u5957\u9910\u8d39\u7528\u4e3a98\u5143\u201d+\u201c\u6708\u57fa\u672c\u8d39\u7528\u4e3a10\u5143\u201d+\u201c\u8bed\u97f3\u901a\u4fe1\u8d39\u4e3a5.6\u5143\u201d+\u201c\u4e0a\u7f51\u53ca\u6570\u636e\u901a\u4fe1\u8d39\u4e3a10.3\u5143\u201d=123.9\u5404\u6d88\u8d39\u9879\u7684\u6bd4\u4f8b\u4e3a \u5957\u9910\u53ca\u6708\u57fa\u672c\u8d39\u6bd4\u4f8b=\uff0898+10\uff09/123.9http://m.gd.189.cn/ \u8bed\u97f3\u901a\u4fe1\u8d39\u6bd4\u4f8b=5.6/123.9http://m.gd.189.cn/ \u4e0a\u7f51\u53ca\u6570\u636e\u901a\u4fe1\u8d39\u6bd4\u4f8b=10.3/123.9\u8c22\u8c22\u60a8\u5bf9\u7535\u4fe1\u4ea7\u54c1\u7684\u5173\u6ce8\uff0c\u795d\u60a8\u751f\u6d3b\u6109\u5feb\u3002 \u5982\u679c\u4ee5\u4e0a\u4fe1\u606f\u6ca1\u6709\u89e3\u51b3\u60a8\u7684\u95ee\u9898\uff0c\u4e5f\u53ef\u767b\u5f55\u5e7f\u4e1c\u7535\u4fe1\u624b\u673a\u5546\u57ce\u4f01\u4e1a\u77e5\u9053\u5e73\u53f0http://zhidao.baidu.com/c/gd189\uff0c\u5411\u5728\u7ebf\u5ba2\u670d\u6c42\u52a9\uff01

\u9690\u85cf\u7684\uff1f
\u6211\u7528\u7684\u5efa\u884c\u4fe1\u7528\u5361\uff0c\u901a\u8fc7\u7f51\u7edc\u6e20\u9053\u529e\u5361\uff0c\u53ef\u80fd\u53ea\u80fd\u529e\u7406\u90e8\u5206\u5361\u79cd\uff0c\u6709\u4e9b\u5361\u79cd\u9700\u8981\u5230\u5efa\u884c\u7f51\u70b9\u529e\u7406\u3002\u4f60\u6307\u7684\u662f\u8fd9\u4e2a\u610f\u601d\u5417\uff1f
\u5982\u679c\u4e0d\u662f\uff0c\u53ef\u4ee5\u5728\u8ffd\u95ee\u91cc\u8be6\u8ff0\uff0c\u65b9\u4fbf\u6211\u7ed9\u4f60\u89e3\u7b54\u3002

这和生产者和消费者线程耗时有关,

最简单的一个公式:

生产者线程数*消费者平均耗时=消费者线程数*生产者平均耗时

得出: 生产者线程数/消费者线程数=消费者平均耗时/生产者平均耗时。

得出比例后就需要确定具体的线程数了,线程数需要根据业务量大小确实,这个没办法根据公式计算。同时,线程数还受到应用类型和cpu核心数的影响,一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)

总之线程的配置是一个比较繁琐的过程,需要通过不断的试验找到最佳的配置。



  • java澶氱嚎绋,鎬庝箞绠楀嚭鏈浣崇殑鐢熶骇娑堣垂鐨勯厤姣旀瘮渚?
    绛旓細鏈绠鍗曠殑涓涓叕寮忥細鐢熶骇鑰呯嚎绋嬫暟*娑堣垂鑰呭钩鍧囪楁椂=娑堣垂鑰呯嚎绋嬫暟*鐢熶骇鑰呭钩鍧囪楁椂 寰楀嚭锛 鐢熶骇鑰呯嚎绋嬫暟/娑堣垂鑰呯嚎绋嬫暟=娑堣垂鑰呭钩鍧囪楁椂/鐢熶骇鑰呭钩鍧囪楁椂銆傚緱鍑烘瘮渚嬪悗灏遍渶瑕佺‘瀹氬叿浣撶殑绾跨▼鏁颁簡锛岀嚎绋嬫暟闇瑕佹牴鎹笟鍔¢噺澶у皬纭疄锛岃繖涓病鍔炴硶鏍规嵁鍏紡璁$畻銆傚悓鏃讹紝绾跨▼鏁拌繕鍙楀埌搴旂敤绫诲瀷鍜宑pu鏍稿績鏁扮殑褰卞搷锛屼竴鑸鏉ワ紝...
  • Java澶氱嚎绋绋嬪簭璁捐璇︾粏瑙f瀽
    绛旓細鍏稿瀷鍦,suspend() 鍜 resume() 琚敤鍦ㄧ瓑寰呭彟涓涓绾跨▼浜х敓鐨勭粨鏋滅殑鎯呭舰:娴嬭瘯鍙戠幇缁撴灉杩樻病鏈変骇鐢熷悗,璁╃嚎绋嬮樆濉,鍙︿竴涓嚎绋嬩骇鐢熶簡缁撴灉鍚,璋冪敤 resume() 浣垮叾鎭㈠銆3. yield() 鏂规硶:yield() 浣垮緱绾跨▼鏀惧純褰撳墠鍒嗗緱鐨 CPU 鏃堕棿,浣嗘槸涓嶄娇绾跨▼闃诲,鍗崇嚎绋嬩粛澶勪簬鍙墽琛岀姸鎬,闅忔椂鍙兘鍐嶆鍒嗗緱 CPU 鏃堕棿銆傝皟鐢 yield(...
  • Java澶氱嚎绋闂鎬荤粨?
    绛旓細澶氭牳CPU涓婄殑澶氱嚎绋嬫墠鏄湡姝g殑澶氱嚎绋嬶紝瀹冭兘璁╀綘鐨勫娈甸昏緫鍚屾椂宸ヤ綔锛屽绾跨▼锛屽彲浠ョ湡姝e彂鎸鍑哄鏍窩PU鐨勪紭鍔挎潵锛岃揪鍒板厖鍒嗗埄鐢–PU鐨勭洰鐨勩傦紙2锛夐槻姝㈤樆濉 浠庣▼搴忚繍琛屾晥鐜囩殑瑙掑害鏉ョ湅锛屽崟鏍窩PU涓嶄絾涓嶄細鍙戞尌鍑哄绾跨▼鐨勪紭鍔匡紝鍙嶈屼細鍥犱负鍦ㄥ崟鏍窩PU涓婅繍琛屽绾跨▼瀵艰嚧绾跨▼涓婁笅鏂囩殑鍒囨崲锛岃岄檷浣庣▼搴忔暣浣撶殑鏁堢巼銆備絾鏄崟...
  • java涓绾跨▼鐨璁茶В鍙婂叾搴旂敤
    绛旓細姣忎釜姝e湪绯荤粺涓婅繍琛岀殑绋嬪簭閮芥槸涓涓繘绋嬨傛瘡涓繘绋嬪寘鍚竴鍒澶氫釜绾跨▼銆傝繘绋嬩篃鍙兘鏄暣涓▼搴忔垨鑰呮槸閮ㄥ垎绋嬪簭鐨勫姩鎬佹墽琛屻傜嚎绋嬫槸涓缁勬寚浠ょ殑闆嗗悎锛屾垨鑰呮槸绋嬪簭鐨勭壒娈婃锛屽畠鍙互鍦ㄧ▼搴忛噷鐙珛鎵ц銆備篃鍙互鎶婂畠鐞嗚В涓轰唬鐮佽繍琛岀殑涓婁笅鏂囥傛墍浠ョ嚎绋嬪熀鏈笂鏄交閲忕骇鐨勮繘绋嬶紝瀹冭礋璐e湪鍗曚釜绋嬪簭閲屾墽琛屽浠诲姟銆傞氬父鐢辨搷浣滅郴缁熻礋璐...
  • 鍏充簬JAVA澶氱嚎绋嬬殑杩囩▼,璇烽珮鎵嬪府蹇欏垎鏋愪竴涓嬮偅涓粨鏋滄槸濡備綍鍑烘潵鐨.(涓瀹...
    绛旓細涓変釜绾跨▼閮借繘鍏ヤ簡store鏂规硶骞朵笖濡倀hrea-1灏唌oney 鍙樻垚100锛屽湪杩欎箣鍚庯紝threa-2鍜宼hrea-3鍚屾椂鍙栦簡money鐨勫硷紙鍙栧埌鍚勮嚜绾跨▼鐨涓存椂鍙橀噺閲屽幓锛夛紝鍙戠幇鏄100锛岀劧鍚庡姞100鍚庯紝鍦ㄥ悇鑷洿鏂板叡浜彉閲弇oney锛宮oney鍙樻垚浜200.鏈鍚庡悇鑷墦鍗帮紝thread-2 200锛宼hread-3 200銆傚悗闈㈢殑鎯呭喌涔熸槸杩欐牱銆
  • java 澶氱嚎绋 姹傚拰
    绛旓細鎴戠紪鍐欑殑涓娈典唬鐮侊紝鍩烘湰涓婂凡缁忓疄鐜澶氱嚎绋姹傚拰 鍙槸娌″姙娉曡繑鍥炴瘡涓嚎绋嬫眰鍜屼箣鍚庡緱鍑虹殑鍊 鎴戠殑鐩殑姣曠珶鏄眰鎬荤殑鍜岋紝涓嶆槸姣忎釜绾跨▼鐨勫拰 import java.io.*;class testthread extends Thread { int b[]=null;public testthread(int[] a){b=a;} public void run(){int sum=0;for (int i = 0; i...
  • java涓绾跨▼鐨瑙i噴???
    绛旓細java鏄涓涓湪璇█涓疄鐜扮殑銆俲ava鍦ㄨ瑷绾ф彁渚涗簡瀵澶氱嚎绋璁捐鐨勬敮鎸併傜嚎绋嬶細鏄繘绋嬩腑鐨勪竴涓崟涓鐨勮繛缁帶鍒舵祦绋嬨備竴涓繘绋嬪彲浠ユ嫢鏈澶氫釜绾跨▼銆傚绾跨▼甯姪浣犲啓鍑篊PU鏈澶у埄鐢ㄧ巼鐨勯珮鏁堢▼搴忋備妇渚嬫潵璇达紝缃戠粶鐨勬暟鎹紶閫侀熺巼杩滆繙浣庝簬CPU澶勭悊鑳藉姏锛屾湰鍦版枃浠剁郴缁熻祫婧愮殑璇诲啓閫熷害涔熻繙杩滀綆浜嶤PU鐨勫鐞嗚兘鍔涳紝鍦ㄤ紶缁熺殑鍗...
  • 浠涔堟槸JAVA鐨勫绾跨▼?
    绛旓細涓荤嚎绋:鍦ㄨ繘绋嬩腑鑷冲皯瀛樺湪涓涓富绾跨▼锛鍏朵粬瀛愮嚎绋嬮兘鐢变富绾跨▼寮鍚,涓荤嚎绋嬩笉涓瀹氬湪鍏朵粬绾跨▼缁撴潫鍚庣粨鏉燂紝鏈夊彲鑳藉湪鍏朵粬绾跨▼缁撴潫鍓嶇粨鏉熴Java涓殑涓荤嚎绋嬫槸main绾跨▼,鏄Java鐨main鍑芥暟;浜屻 Java涓疄鐜澶氱嚎绋嬬殑鏂瑰紡:缁ф壙Thread绫绘潵瀹炵幇澶氱嚎绋:褰撴垜浠嚜瀹氫箟鐨勭被缁ф壙Thread绫诲悗锛岃绫诲氨涓轰竴涓嚎绋嬬被,璇ョ被涓轰竴涓...
  • java 澶氱嚎绋璁块棶鏁扮粍姹傚拰?
    绛旓細public class T{ int[] input={100,5,98,77,60,88,36}; int[] output={0,0,0,0,0,0,0}; int curr = 0; public synchronized int getCurr() { if( curr== input.length ) return -1; return curr++; } static class Worker extends Thread { T t; public...
  • 鎬ユ眰:java 濡備綍鑾峰緱绾跨▼杩愮畻鐨勭粨鏋
    绛旓細鍦╩ain鏂规硶涓垱寤轰竴涓暟缁勩傛墍鏈绾跨▼绫荤殑鏋勯犳柟娉曢兘闇瑕佷竴涓暟缁勫仛鍙傛暟銆傜嚎绋嬩綋缁撴潫鏃剁粰鏁扮粍涓殑鏌愪釜鍏冪礌璧嬪笺俻ublic void run() { ...a[i] = ...;} main鏂规硶涓瓑寰呮墍鏈夌嚎绋嬬粨鏉熷悗鎵撳嵃鏁扮粍銆倀1.join();
  • 扩展阅读:java线程池配置参数 ... 多线程同步的方法 ... java线程池的七个参数 ... 线程同步的3种方法 ... 现在多线程都用哪种方式 ... 多线程创建方式 ... java多线程经典实例 ... 多线程有哪些方法 ... java多线程有几种实现方法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网