1. 程式人生 > >VM上完美執行macos

VM上完美執行macos

  VM上完美執行macos
  
  作者:方辰昱
  
  時間:十月三號
  
  效果圖
  
  簡要步驟
  
  下載安裝VM
  
  下載映象檔案連結,darwin.iso,unlocker,beamoff。合集下載連結:https://pan.baidu.com/s/1jeHA-ksEKT1iK5Ld7GmS9Q
  
  提取碼:27tj
  
  unlock對VM進行操作使其對macos支援安裝
  
  安裝macos
  
  磁碟工具建立新的磁碟安裝系統
  
  用darwin安裝vmool
  
  設定全屏
  
  使用beamoff及一些設定進行優化
  
  安裝VM虛擬機器省略,下載省略,將下載檔案進行解壓省略
  
  一使用unlocker
  
  搜尋server
  
  停止所有與VM有關的服務
  
  開啟win.install並等待執行完畢(執行完畢自動退出)
  
  二安裝macos映象檔案
  
  選擇所有檔案開啟下載的映象檔案
  
  如果安裝成功unlocker在建立虛擬機器此頁面會有Apple
  
  macos顯示選擇macos10.11(自動選擇為10.12)
  
  為保證流暢執行至少調整為60g和4g記憶體以及雙處理器四核心
  
  注意牢記虛擬機器安裝的位置
  
  /*最好能將虛擬機器放入ssd中親測速度快很多明顯提升!!!*/
  
  配置完成
  
  進入虛擬機器會出現如圖錯誤
  
  此時去安裝虛擬機器的資料夾找到此檔案
  
  如果忘記路徑可如圖找到
  
  用記事本開啟將程式碼修改為如圖所示,點選儲存
  
  點選進入虛擬機器等待進入
  
  選擇簡體中文
  
  選擇磁碟工具選擇抹掉(apple抹掉就是格式化)建立新的磁碟
  
  點選抹掉
  
  重新啟動,點選繼續
  
  選擇自定義的磁碟進行安裝
  
  等待安裝完成
  
  此時macos已經能正常運行了下面進行優化
  
  全屏執行
  
  選擇虛擬機器
  
  選擇設定
  
  選擇選項並且選擇電源勾選啟動後自動進入全屏
  
  點選確定
  
  此時如果解析度是剛好進入就全屏了呢麼恭喜你可以看下面一步了
  
  如果不是進入還是未佔滿螢幕便要設定解析度
  
  安裝vmtool
  
  點選編輯虛擬機器(在啟動虛擬機器下面)
  
  將下載的映象檔案選中即可
  
  但是會發現打不開報錯
  
  此時 進入虛擬機器將原來安裝使用的映象檔案退出來即可
  
  點選彈出的那個小按鈕
  
  此時在去編輯虛擬機器裡匯入檔案即可開啟vmtool安裝介面 然後安裝即可
  
  安裝beamoff
  
  將beamoff拖入虛擬機器中(需要從全屏到半屏,拖入移動檔案要安裝vmtool)
  
  去虛擬機器中
multiprocessing.Process(target=None, args=())
target: 可以被run()呼叫的函式,簡單來說就是程序中執行的函式
args: 是target的引數

process的方法:
start(): 開始啟動程序,在建立process之後執行
join([timeout]):阻塞目前父程序,直到呼叫join方法的程序執行完或超時(timeout),才繼續執行父程序
terminate():終止程序,不論程序有沒有執行完,儘量少用。
示例1

from multiprocessing import Process

def f(name):
print 'hello', name

if __name__ == '__main__':
p = Process(target=f, args=('bob',)) # p程序執行f函式,引數為'bob',注意後面的“,”
p.start() # 程序開始
p.join() # 阻塞主執行緒,直至p程序執行結束
3.3.2 程序池Process Pools
class multiprocessing.Pool([processes])
processes是程序池中的程序數,預設是本機的cpu數量
方法:
apply(func[, args[, kwds]])程序池中的程序進行func函式操作,操作時會阻塞程序,直至生成結果。
apply_async(func[, args[, kwds[, callback]]])與apply類似,但是不會阻塞程序
map(func, iterable[, chunksize])程序池中的程序進行對映操作
map_async(func, iterable[, chunksize[, callback]])
imap(func, iterable[, chunksize]):返回有序迭代器
imap_unordered(func, iterable[, chunsize]):返回無序迭代器
close():禁止程序池再接收任務
terminate():強行終止程序池,不論是否有任務在執行
join():在close(www.dfgjpt.com/)或terminate()之後進行,等待程序退出
示例2

from multiprocessing import Pool

def f(x):
return x*x

if __name__ == '__main__':
p = Pool(5) # 建立有5個程序的程序池
print(p.map(f, [1, 2, 3])) # 將f函式的操作給程序池
3.3.3 Pipes & Queues
multiprocessing.Pipe([duplex])
返回兩個連線物件(conn1, conn2),兩個連線物件分別訪問pipe的頭和尾,進行讀寫操作
Duplex: True(default),建立的pipe是雙向的,也即兩端都可以進行讀寫;若為False,則pipe是單向的,僅可以在一端讀,另一端寫,此時與Queue類似。

multiprocessing.Queue([maxsize])
qsize():返回queue中member數量
empty():如果queue是空的,則返回true
full():如果queue中member數量達到maxsize,則返回true
put(obj):將一個object放入到queue中
get():從佇列中取出一個object並將它從queue中移除,FIFO原則
close():關閉佇列,並將快取的object寫入pipe
示例

from multiprocessing import Pool
import time
def f(x):
return x*x
if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
result = pool.apply_async(f, (10,)) # evaluate "f(www.xinghenyule.com10)" asynchronously in a single process
print result.get(timeout=1) # prints "100" unless your computer is *very* slow
print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"
it = pool.imap(f, range(10))
print it.next(www.yinmaoyule178.com) # prints "0"
print it.next() # prints "1"
print it.next(timeout=www.dasheng178.com1) # prints "4" unless your computer is *very* slow
result = pool.apply_async(time.sleep, (10,))
print result.get(timeout=1) # raises multiprocessing.TimeoutError
  
  完成後選擇系統偏好設定開啟使用者與群組
  
  選擇自己建立的賬戶選擇登入項,點選小加號選擇beamoff
  
  繼續在設定中找到擴充套件
  
  將不需要的元件關閉
  
  再到設定中的節能器(一個小燈泡)將休眠關閉因為休眠會宕機
  
  再到dock中將神奇效果改為縮放效果