好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > 可視化工具PyVista多線程顯示多窗口的實(shí)例代碼

可視化工具PyVista多線程顯示多窗口的實(shí)例代碼

熱門標(biāo)簽:400電話申請(qǐng)服務(wù)商選什么 江蘇客服外呼系統(tǒng)廠家 清遠(yuǎn)360地圖標(biāo)注方法 在哪里辦理400電話號(hào)碼 西藏智能外呼系統(tǒng)五星服務(wù) 平頂山外呼系統(tǒng)免費(fèi) 千陽(yáng)自動(dòng)外呼系統(tǒng) 工廠智能電話機(jī)器人 原裝電話機(jī)器人

在使用PyVista進(jìn)行多線程同時(shí)顯示多個(gè)窗口的時(shí)候,發(fā)現(xiàn)開(kāi)啟多個(gè)線程顯示窗口,窗口會(huì)卡死,于是便有了這篇文章。

發(fā)現(xiàn)問(wèn)題

在可視化工具——利用PyVista進(jìn)行mesh的色彩映射這篇博客中,我們實(shí)現(xiàn)了使用四種方法對(duì)mesh進(jìn)行色彩映射,為了對(duì)這四種方法映射結(jié)果有一個(gè)直觀的認(rèn)識(shí),我第一個(gè)想法就是開(kāi)啟四個(gè)線程,分別調(diào)用這四個(gè)函數(shù)。
代碼如下:
定義四個(gè)色彩映射函數(shù):

import pyvista as pv
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
import colorcet
import threading
from pyvista.demos import demos
from pyvista import examples
import multiprocessing

def mesh_cmp_custom(mesh, name):
 """
 自定義色彩映射
 :param mesh: 輸入mesh
 :param name: 比較數(shù)據(jù)的名字
 :return:
 """
 pts = mesh.points
 mesh[name] = pts[:, 1]
 # Define the colors we want to use
 blue = np.array([12 / 256, 238 / 256, 246 / 256, 1])
 black = np.array([11 / 256, 11 / 256, 11 / 256, 1])
 grey = np.array([189 / 256, 189 / 256, 189 / 256, 1])
 yellow = np.array([255 / 256, 247 / 256, 0 / 256, 1])
 red = np.array([1, 0, 0, 1])

 c_min = mesh[name].min()
 c_max = mesh[name].max()
 c_scale = c_max - c_min

 mapping = np.linspace(c_min, c_max, 256)
 newcolors = np.empty((256, 4))
 newcolors[mapping >= (c_scale * 0.8 + c_min)] = red
 newcolors[mapping  (c_scale * 0.8 + c_min)] = grey
 newcolors[mapping  (c_scale * 0.55 + c_min)] = yellow
 newcolors[mapping  (c_scale * 0.3 + c_min)] = blue
 newcolors[mapping  (c_scale * 0.1 + c_min)] = black

 # Make the colormap from the listed colors
 my_colormap = ListedColormap(newcolors)
 mesh.plot(scalars=name, cmap=my_colormap)


def mesh_cmp_mpl(mesh, name):
 """
  使用Matplotlib進(jìn)行色彩映射
  :param mesh: 輸入mesh
  :param name: 比較數(shù)據(jù)的名字
  :return:
  """
 pts = mesh.points
 mesh[name] = pts[:, 1]
 mlp_cmap = plt.cm.get_cmap("viridis", 25)
 mesh.plot(scalars=name, cmap=mlp_cmap)


def mesh_cmp(mesh, name):
 """
  使用進(jìn)行plot自帶的色彩映射
  :param mesh: 輸入mesh
  :param name: 比較數(shù)據(jù)的名字
  :return:
 """
 pts = mesh.points
 mesh[name] = pts[:, 1]
 mesh.plot(scalars=name, cmap='viridis_r')


def mesh_cmp_colorcet(mesh, name):
 """
  使用進(jìn)行colorcet進(jìn)行色彩映射
  :param mesh: 輸入mesh
  :param name: 比較數(shù)據(jù)的名字
  :return:
 """
 pts = mesh.points
 mesh[name] = pts[:, 1]
 mesh.plot(scalars=name, cmap=colorcet.fire)

開(kāi)啟四個(gè)線程調(diào)用:

if __name__ == '__main__':
 #mesh = pv.read('vtkData/airplane.ply')
 mesh = examples.download_embryo()
 # 開(kāi)啟多線程用于可視化曲面
 t1 = threading.Thread(target=mesh_cmp, args=(mesh, 'y_height',))
 t1.start()
 t2 = threading.Thread(target=mesh_cmp_mpl, args=(mesh, 'y_height',))
 t2.start()
 t3 = threading.Thread(target=mesh_cmp_custom, args=(mesh, 'y_height',))
 t3.start()

 t1.join()
 t2.join()
 t3.join()

結(jié)果,卡頓了

問(wèn)題分析

首先說(shuō)一下python的多線程問(wèn)題

python多線程

線程(Thread)也叫輕量級(jí)進(jìn)程,是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位,它被包涵在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)兒在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。

舉個(gè)簡(jiǎn)單的例子來(lái)理解下:
假定有一 7 * 24 小時(shí)不停工的工廠,由于其電力有限,一次僅供一個(gè)車間使用,當(dāng)一個(gè)車間在生產(chǎn)時(shí),其他車間停工。在這里我們可以理解這個(gè)工廠相當(dāng)于操作系統(tǒng),供電設(shè)備相當(dāng)于 CPU,一個(gè)車間相當(dāng)于一個(gè)進(jìn)程。

一個(gè)車間里,可以有很多工人。他們協(xié)同完成一個(gè)任務(wù)。車間的空間是工人們共享的,這里一個(gè)工人就相當(dāng)于一個(gè)線程,一個(gè)進(jìn)程可以包括多個(gè)線程。比如許多房間是每個(gè)工人都可以進(jìn)出的。這象征一個(gè)進(jìn)程的內(nèi)存空間是共享的,每個(gè)線程都可以使用這些共享內(nèi)存。

Python 多線程適合用在 I/O 密集型任務(wù)中。I/O 密集型任務(wù)較少時(shí)間用在 CPU 計(jì)算上,較多時(shí)間用在 I/O 上,如文件讀寫,web 請(qǐng)求,數(shù)據(jù)庫(kù)請(qǐng)求 等;而對(duì)于計(jì)算密集型任務(wù),應(yīng)該使用多進(jìn)程。

參考: https://blog.csdn.net/somezz/article/details/80963760

問(wèn)題解決

很明顯,應(yīng)該使用多進(jìn)程來(lái)顯示四個(gè)窗口。
代碼:

if __name__ == '__main__':
 #mesh = pv.read('vtkData/airplane.ply')
 mesh = examples.download_embryo()
 # 開(kāi)啟多進(jìn)程用于可視化曲面
 p1 = multiprocessing.Process(target=mesh_cmp_custom, args=(mesh, 'y_height',))
 p2 = multiprocessing.Process(target=mesh_cmp_mpl, args=(mesh, 'y_height',))
 p3 = multiprocessing.Process(target=mesh_cmp, args=(mesh, 'y_height',))
 p1.start()
 p2.start()
 p3.start()

 p1.join()
 p2.join()
 p3.join()

結(jié)果:

到此這篇關(guān)于可視化工具PyVista多線程顯示多窗口的實(shí)例代碼的文章就介紹到這了,更多相關(guān)PyVista可視化工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • C語(yǔ)言實(shí)現(xiàn)四窗口聊天
  • Java 滑動(dòng)窗口最大值的實(shí)現(xiàn)
  • JavaScript實(shí)現(xiàn)鼠標(biāo)控制自由移動(dòng)的窗口
  • C#仿QQ聊天窗口
  • Pyqt5 實(shí)現(xiàn)窗口縮放,控件在窗口內(nèi)自動(dòng)伸縮的操作
  • Android窗口小部件基礎(chǔ)編寫代碼實(shí)例
  • Python爬蟲之Selenium多窗口切換的實(shí)現(xiàn)
  • Java窗口精細(xì)全方位講解

標(biāo)簽:股票 西安 隨州 錦州 天水 日照 安慶 白城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《可視化工具PyVista多線程顯示多窗口的實(shí)例代碼》,本文關(guān)鍵詞  可視化,工具,PyVista,多,線程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《可視化工具PyVista多線程顯示多窗口的實(shí)例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于可視化工具PyVista多線程顯示多窗口的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩午夜无码一区二区视频| 在线播放极太黑炮vs绝伦美女| 啊啊啊啊好深| 久久精品欧美一区二区三区不卡| 成人毛片???91| 国产又粗又猛又爽又黄老大爷| 二次元奖励自己的视频| 强行被灌满连续受孕H变态| 99国产精品成人AV片免费看| 免费看裸色| 久久久青草青青亚洲国产免观| 91久久偷窥撒尿一区二区| 高潮了太爽了受不了尿了视频 | 奇米影视亚洲狠狠色777不卡| 国产全肉乱妇乱子视频| 偷偷鲁2020精品偷拍视频| 男男屁股扒开露出来| 欧美在线看片| 尹志平吮小龙女奶头| 69堂国产成人精品视频| 黄色片网站日本| 欧洲色视频| 小妖精奶头好大好软让我揉揉| 把腿张开看老子臊烂你免费| 狂c亲女长篇小说| 午夜黄色| 18岁以下禁止进入的网站| 99热这里都是国产精品| 午夜视频网站在线观看| 国产清纯白嫩初高生在线观看性色| zzijzzij亚洲日本护士| 美国一级片免费看| 国产精品免费无码理论片在线| 美女100%无遮挡| 男男gaygays免费网| 最新免费黄色网址| 美国一级婬片A片AAA在线观看| 大胸奶头少妇XXXⅩ猛男电影| 久久性感美女视频| 国产精品久久久久永久免费看 | 国产福利网站|