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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Windows 中使用 Go 將進程設(shè)置為 CPU?

如何在 Windows 中使用 Go 將進程設(shè)置為 CPU?

Go
達令說 2021-10-04 16:18:48
我想在win7中使用Go將進程設(shè)置為CPU,代碼如下:package mainimport (    "fmt"    "math"    "runtime"    "syscall"    "unsafe")func SetAffinity(pid int, mask *int64) {    syscall.Syscall(syscall.SYS_SCHED_SETAFFINITY,        uintptr(pid), 8, uintptr(unsafe.Pointer(mask)))}func GetAffinity(pid int, mask *int64) {    syscall.Syscall(syscall.SYS_SCHED_GETAFFINITY,        uintptr(pid), 8, uintptr(unsafe.Pointer(mask)))}var cpuNum = float64(runtime.NumCPU())var setx = []struct {    args     int    expected int64}{    {0, int64(math.Pow(2, cpuNum)) - 2},}func main() {    for _, ca := range setx {        var cpuSet int64        GetAffinity(ca.args, &cpuSet)        cpuSet = cpuSet & 0XFFFFFFE        SetAffinity(ca.args, &cpuSet)        fmt.Println(cpuSet)        GetAffinity(ca.args, &cpuSet)        fmt.Println(cpuSet)    }}當(dāng)我使用時go run affinity.go,獲取以下信息:# command-line-arguments.\affinity.go:12: undefined: syscall.SYS_SCHED_SETAFFINITY.\affinity.go:13: not enough arguments in call to syscall.Syscall.\affinity.go:17: undefined: syscall.SYS_SCHED_GETAFFINITY.\affinity.go:18: not enough arguments in call to syscall.Syscall我發(fā)現(xiàn)SYS_SCHED_SETAFFINITY它只在 linux 中使用。那么,我想在Windows(Win7)中使用Go將進程設(shè)置為cpu,我該怎么辦?
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

您必須調(diào)用 WinAPI SetProcessAffinityMask。


這樣的事情應(yīng)該工作:


func setProcessAffinityMask(h syscall.Handle, mask uintptr) (err error) {

    r1, _, e1 := syscall.Syscall(syscall.NewLazyDLL("kernel32.dll").NewProc("SetProcessAffinityMask").Addr(), 2, uintptr(h), mask, 0)

    if r1 == 0 {

        if e1 != 0 {

            err = error(e1)

        } else {

            err = syscall.EINVAL

        }

    }

    return

}

h當(dāng)然,它是進程句柄,并且mask是所需的親和掩碼。


這是從BSD 許可下的Go benchmarks 中獲取的。


查看完整回答
反對 回復(fù) 2021-10-04
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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