第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)問(wèn)這個(gè)出錯(cuò)搞垮是怎么做的呢?

請(qǐng)問(wèn)這個(gè)出錯(cuò)搞垮是怎么做的呢?

12345678_0001 2023-04-17 21:17:14
很多常用的 PHP擴(kuò)展是以Linux/Unix的多進(jìn)程思想來(lái)開(kāi)發(fā)的,這些擴(kuò)展在ISAPI的方式運(yùn)行時(shí)就會(huì)出錯(cuò)搞垮IIS。
查看完整描述

2 回答

?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果沒(méi)有對(duì)多線(xiàn)程做特殊處理的話(huà),任何會(huì)帶來(lái)副作用的函數(shù)內(nèi)都可能導(dǎo)致這個(gè)問(wèn)題。

給你舉個(gè)栗子:glibc的qsort函數(shù)在多線(xiàn)程使用的時(shí)候也可能會(huì)core。為什么呢?因?yàn)橛幸欢未a是這樣的

        if (phys_pages == 0)
        {
            phys_pages = __sysconf (_SC_PHYS_PAGES);
            //__sysconf函數(shù)在sysdeps/posix/sysconf.c中
            //_SC_PHYS_PAGES對(duì)應(yīng)到函數(shù)__get_phys_pages()
            //位于文件sysdeps/unix/sysv/linux/getsysstats.c中
            //通過(guò)phys_pages_info()打開(kāi)/proc/meminfo來(lái)讀取內(nèi)存信息
            //(這就定位到了qsort打開(kāi)文件的問(wèn)題)

            if (phys_pages == -1)
                /* Error while determining the memory size.  So let's
                  assume there is enough memory.  Otherwise the
                  implementer should provide a complete implementation of                  the `sysconf' function.  */
                phys_pages = (long int) (~0ul >> 1);

            /* The following determines that we will never use more than
              a quarter of the physical memory.  */
            phys_pages /= 4;

            pagesize = __sysconf (_SC_PAGESIZE);
        }
        //注意,上面這一段if會(huì)產(chǎn)生競(jìng)爭(zhēng),出現(xiàn)線(xiàn)程安全安全:
        //如果兩個(gè)線(xiàn)程都調(diào)用qsort,當(dāng)線(xiàn)程1獲取了phys_pages之后,線(xiàn)程2
        //才到達(dá)if,線(xiàn)程2就會(huì)跳過(guò)這一段代碼,直接執(zhí)行下面的if語(yǔ)句——
        //而此時(shí)pagesize尚未初始化(=0),于是就會(huì)出現(xiàn)除零錯(cuò)誤,導(dǎo)致
        //core dump

        /* Just a comment here.  We cannot compute (phys_pages * pagesize)          and compare the needed amount of memory against this value.
          The problem is that some systems might have more physical
          memory then can be represented with a `size_t' value (when
          measured in bytes.  */

        /* If the memory requirements are too high don't allocate memory.  */
        //如果所需的內(nèi)存頁(yè)數(shù)大于總的可用內(nèi)存,則不分配內(nèi)存(防止swap降低性能)
        if (size / pagesize > (size_t) phys_pages)
        {
            //直接使用stdlib/qsort.c中的 _quicksort 進(jìn)行排序
            _quicksort (b, n, s, cmp, arg);            return;
        }


查看完整回答
反對(duì) 回復(fù) 2023-04-20
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

Windows中運(yùn)行PHP建議使用FastCGI方式,不會(huì)遇到線(xiàn)程安全問(wèn)題。

查看完整回答
反對(duì) 回復(fù) 2023-04-20
  • 2 回答
  • 0 關(guān)注
  • 249 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)