鍍金池/ 問答/ Linux問答
別瞎鬧 回答

volatile僅保證可見性。這個可見性是針對讀取操作來說的,所以你說的情況完全有可能發(fā)生。

之所以會這樣,是因為對個線程并發(fā)對同一個變量進行修改時,除了可見性,還必須保證修改過程是原子的,修改過程包括讀、自增、寫三步。

所以你這種情況,如果把inc換成AtomicInteger就沒問題了。

如果你的10個線程中,只有1個線程會修改inc變量,另外9個線程都只是讀取,那么就可以使用volatile,它會保證這9個線程每次讀到的都是最新的inc值。

你好胸 回答

難道不是這樣的嗎?
clipboard.png

懶豬 回答

ajax請求js文件后用wrapper包起來eval,我猜是這樣。

另外你可以看看node.js的解決方法,把其中的讀文件部分換成發(fā)請求應該就行了,但模塊的解析策略上可能會稍有變動。

帥到炸 回答

已經(jīng)解決了,跟umask有關。
原因:
linux默認umask為022,對應權限為755,其它用戶可讀可執(zhí)行??梢詖im /etc/profile,搜索umusk關鍵字查看

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

而tomcat8默認umask為027,對應權限為750,也就是說其它用戶連可讀的權限都沒有
可打開catalina.sh文件,搜索umask查看。

# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
    UMASK="0027"
fi
umask $UMASK

解決方法:
修改catalina.sh中的umask為0022,與操作系統(tǒng)保持一致,然后重啟tomcat即可。

參考博客:
linux umask使用詳解
有關Tomcat 8.0版本文件上傳后無權限訪問的問題

落殤 回答

import {Page} from 'xxxxx'這樣引用Page時,需要export const Page

筱饞貓 回答

B 不會再發(fā)送任何信號,這種僵尸進程最終被 init 進程(pid=1)自動回收。

請參考

When a process loses its parent, init becomes its new parent. init periodically executes the wait system call to reap any zombies with init as parent.

https://en.wikipedia.org/wiki...

糖果果 回答

在dev依賴中和生產(chǎn)依賴有同樣的一個包,且這個包的不同環(huán)境依賴版本還不同。

枕邊人 回答

remote的地址對嗎(提示是無法讀取遠程倉庫),建議不要用命令行來實現(xiàn)提交(很累的),但是你都在cygwin里操作了……

三種方式都可以。

  • 修改命令

git remte origin set-url URL

  • 先刪后加

git remote rm origin
git remote add origin git@github.com:Liutos/foobar.git

  • 直接修改config文件

乞許 回答

仔細看了下服務器后臺,tomcat正常啟動了但是沒有加載我的項目,其他項目沒有問題,我就草了

黑與白 回答

額,恭喜你,你的擴展全部被你搞丟了,你需要自己重新安裝這些擴展.在ubuntu下,我的建議是最好是用pecl安裝或者是apt安裝。這兩個是自動解決依賴問題.如果用源碼,就需要配置好參數(shù).從錯誤信息來看,你的擴展都被你弄丟了.

久礙你 回答

請勿在VMware 10或更低版本運行centos 7,推薦在VMware 12 或更高版本運行。運行l(wèi)spci看看有沒有網(wǎng)卡??纯?etc/network/interfaces 里面的內容

尐懶貓 回答

提示你沒有配置數(shù)據(jù)庫信息,提示沒有連接到數(shù)據(jù)庫

枕邊人 回答

這是 libevent 與 openssl 版本不兼容導致。

一般來說,它們的版本關系是這樣的

libevent openssl
2.1.x 1.1
2.0.x 1.0

因此你有兩個選擇

  1. 使用 libevent 2.1.x 版本,這與你本機的 openssl 1.1 匹配,無需任何修改直接編譯即可。
  2. 使用 libevent 2.0.x 版本,你需要安裝 openssl 1.0 版本,然后在編譯時指定鏈接版本。

下面針對第二種選擇做詳細說明,這種方法是通用的,適用于編譯其他軟件時出現(xiàn)版本不兼容問題。

  1. 首先安裝 openssl 1.0 版本,注意需要頭文件。你可以選擇從源碼安裝,或使用操作系統(tǒng)的倉庫下載安裝。
    這類安裝包通常帶有 "*-dev" 字樣,比如 centos 發(fā)行版可能是這樣的

    yum install openssl-devel-1.0xxx
  2. openssl 安裝完成后,會有一個 pkgconfig/ 目錄,實際路徑取決于你上一步的操作,一般位于 /usr/lib/usr/local/lib 下。
    這里我們假設是 /usr/local/lib/openssl-1.0/pkgconfig/, 你需要將它設置成 PKG_CONFIG_PATH 的環(huán)境變量值,如

    export PKG_CONFIG_PATH=/usr/local/lib/openssl-1.0/pkgconfig/ 
  3. 切換到 libevent 源碼目錄,把 openssl 頭文件路徑,及庫文件路徑加入 configure 配置變量,如

    ./configure   CFLAGS="$(pkg-config --cflags openssl)"   LDFLAGS="$(pkg-config --libs openssl)"
  4. 清除原內容,并重新編譯即可

    make clean
    make -j8
孤客 回答

See: https://stackoverflow.com/que...

Bash做不到,但是Zsh可以。另外,如果你的程序期望長期后臺運行,那么你應該把程序做成后臺服務。Ubuntu 16.04以上版本用systemd,14.04及以下使用upstart,都不難

汐顏 回答

搜索的意義是什么?

比如你輸入py然后按了tab,得到一些補全,然后再輸入3再按tab不就相當于搜索么。

孤巷 回答

你直接在命令行里面cd到那個文件夾然后用ll或者是ls -al查看全部文件,就能看到被隱藏的.git文件夾

來守候 回答

你域名解析的是 www ,你的cname 中應該是 www.mynotes.work

過客 回答

偽靜態(tài)設置了嗎?
Nginx 偽靜態(tài)

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}
入她眼 回答
proxy_intercept_errors on;
error_page 504 = @500;
location @500 {
    default_type application/json;
    return 500 '{"code": -1,"message":"failed to connect remote error"}';
}