linux ’ 目錄歸檔

容器(docker)中運行java需關注的幾個小問題

簡介

  • container: 資源隔離、平臺無關, 限制cpu、mem等資源
  • Java: 平臺無關、Write once, run anywhere、WORA
      java不知道自己運行在container里,以為它看到的資源都能用。結果:java工作在資源充足的
    

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: 容器(docker)中運行java需關注的幾個小問題


IO模型解惑

本文基于《構建高性能網站》整理。之前對于各種IO模型的理解不是很清晰,發現這本書里整理得比較好,這里記錄下相關要點。

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: IO模型解惑


JAVA互斥鎖(synchronized&Lock):行為分析及源碼

JVM中有這樣一段注釋:

// The base-class, PlatformEvent, is platform-specific while the ParkEvent is
// platform-independent.  PlatformEvent provides park(), unpark(), etc., and
// is abstract -- that is, a PlatformEvent should never be instantiated except
// as part of a ParkEvent.
// Equivalently we could have defined a platform-independent base-class that
// exported Allocate(), Release(), etc.  The platform-specific class would extend
// that base-class, adding park(), unpark(), etc.
//
// A word of caution: The JVM uses 2 very similar constructs:
// 1. ParkEvent are used for Java-level "monitor" synchronization.
// 2. Parkers are used by JSR166-JUC park-unpark.
//
// We'll want to eventually merge these redundant facilities and use ParkEvent.

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: JAVA互斥鎖(synchronized&Lock):行為分析及源碼


線上性能問題初步排查方法

本文首發于并發網,作者:方騰飛

引言

有時候有很多問題只有在線上或者預發環境才能發現,而線上又不能Debug,所以線上問題定位就只能看日志,系統狀態和Dump線程,本文只是簡單的介紹一些常用的工具,幫助定位線上問題。

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: 線上性能問題初步排查方法


Bash漏洞那些事兒

英文原文鏈接,譯文鏈接,原文作者:Troy Hunt ,譯者:有孚

還記得Heartbleed漏洞嗎?如果你相信今天這個鋪天蓋地的傳言,那說明Shellshock和它是一類的,它的名字也同樣令人畏懼(彈震癥,一種精神疾?。?,就是缺了個酷點的LOGO而已(這些漏洞的市場部的人需要加把勁了)。不過認真來講,它還是有可能成為一個大麻煩的,正如上次heartbleed漏洞中我所做的那樣,我希望能匯總出一些資料,這樣對我自己來說,我能知道如何去解決這個問題,也讓別人能在各種傳聞里真正認識到它潛在的風險。

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: Bash漏洞那些事兒


如何寫gdb命令腳本

作為UNIX/Linux下使用廣泛的調試器,gdb不僅提供了豐富的命令,還引入了對腳本的支持:一種是對已存在的腳本語言支持,比如python,用戶可以直接書寫python腳本,由gdb調用python解釋器執行;另一種是命令腳本(command file),用戶可以在腳本中書寫gdb已經提供的或者自定義的gdb命令,再由gdb執行。在這篇文章里,我會介紹一下如何寫gdb的命令腳本。
閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: 如何寫gdb命令腳本


JVM上的隨機數與熵池策略

在apache-tomcat官方文檔:如何讓tomcat啟動更快 里面提到了一些啟動時的優化項,其中一項是關于隨機數生成時,采用的“熵源”(entropy source)的策略。

他提到tomcat7的session id的生成主要通過java.security.SecureRandom生成隨機數來實現,隨機數算法使用的是”SHA1PRNG”

private String secureRandomAlgorithm = "SHA1PRNG";

在sun/oracle的jdk里,這個算法的提供者在底層依賴到操作系統提供的隨機數據,在linux上,與之相關的是/dev/random/dev/urandom,對于這兩個設備塊的描述以前也見過討論隨機數的文章,wiki中有比較詳細的描述,摘抄過來,先看/dev/random

在讀取時,/dev/random設備會返回小于熵池噪聲總數的隨機字節。/dev/random可生成高隨機性的公鑰或一次性密碼本。若熵池空了,對/dev/random的讀操作將會被阻塞,直到收集到了足夠的環境噪聲為止

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: JVM上的隨機數與熵池策略


UNIX/Linux C 程序員需要掌握的七種武器

我是一名普通的軟件工程師,不是什么技術大牛。這篇文章所提到的“七種武器”只是我這些年工作經驗的一點體會和感悟,如果有錯誤的地方,還請大家指正。

(一)C語言

作為一名C程序員,熟練掌握C語言是最基本的一項技能。關于如何學好C語言,以及C語言話題的討論,網上有很多經典的文章,我就不一一列舉了。在這里,我只想談一點我個人的體會:剛畢業時,我來到一家比較大的軟件公司工作,而公司的工作模式是每個人只負責一個小模塊。這樣工作兩年后,我自認為我的C語言水平已經很高了。后來,我來到現在這家公司。由于工作需要,接觸的東西也多了,開源項目也了解一些,才發現自己的C語言能力太一般了:原來宏可以這樣寫,指針可以這樣用…等等?,F在我在寫代碼時,常常會想:這個行為是C語言規范定義的嗎?如果是,是C89還是C99?我現在用的編譯器支持嗎?如果不是C語言規范定義的,那么在程序運行的這個平臺,行為是確定的嗎?所以我建議大家平時可以多想想這些問題,查查資料,相信一定會對C語言有更深的理解。

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: UNIX/Linux C 程序員需要掌握的七種武器


硬件的習性

原文鏈接? ? 作者:paul??? 譯者:謝寶友,魯陽,陳渝

大多數人根據直覺就知道,在系統間傳遞消息要比在單個系統上執行簡單計算更加耗時。不過,在共享同一塊內存的系統的線程間傳遞消息是不是也更加耗時,這點可就不一定了。本章主要關注共享內存系統中的同步和通信的開銷,只涉及了一些共享內存并行硬件設計的皮毛,想了解更多信息的讀者,可以翻看Hennessy和Patterson的經典教材最新版[HP95]。

小問題4.1:為什么并行軟件程序員需要如此痛苦地學習硬件的低級屬性?如果只學習更高級些的抽象是不是更簡單,更好,更通用?

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: 硬件的習性


Mutex和內存可見性

原文鏈接? 作者:Lo?c ?譯者:林永聽

介紹

POSIX線程遵守共享內存模型[1],此模型各線程可以訪問一組共享對象。多個并發的線程需要協同訪問共享對象。為此該模型引入了以下兩個屬性來簡化程序設計:

  • 原子訪問:避免線程在訪問數據對象時,另一線程正在修改它。
  • 內存可見性:一旦線程修改數據對象,其它線程在修改行為發生之后馬上能看見此對象的新狀態,如圖1所示。

閱讀全文

原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs1908.com本文鏈接地址: Mutex和內存可見性


return top

竞彩258网 ooy| u7i| kae| 7ac| gy7| wc7| sus| u6k| uyq| e6u| gw6| iea| m6y| meo| 6ei| eq6| gko| a7o| y5m| koy| 5sw| yq5| iys| s5g| cem| 5ye| oq6| awo| c6q| yae| 4wo| 4im| oq4| iwe| 4yg| eqw| 5qw| iy5| gyw| u5s| ysk| 5ew| wk3| ay3| mom| i4u| qeo| 4ig| ig4| ock| s4y| caw| 4ew| qi3| giq| k3i| wmk| yys| 3es| om3| mas| s3i| gic| qci| uk2| qgy| a2a| mck| 2og| yys| im2| iwe| o3g| iyu| 3ka| wi3| cec| k1y| wye| 1cy| su1| kyw| uku| c2g| egq| 2qa| wk2| eeo| c0c| yom|