当前位置: 首页 > news >正文

商家免费网站模板重庆网站建设推广

商家免费网站模板,重庆网站建设推广,省建设安全监督站的网站,公司主页设计图片目的#xff1a;有一段代码#xff0c;后面暂时用不到#xff0c;但是又很耗时#xff0c;占了当前R session#xff0c;难道只能等半个小时#xff0c;等到它结束才能画图#xff1f; 可以使用R多线程#xff0c;在支线进程中执行耗时任务#xff0c;同时不阻塞当前…目的有一段代码后面暂时用不到但是又很耗时占了当前R session难道只能等半个小时等到它结束才能画图 可以使用R多线程在支线进程中执行耗时任务同时不阻塞当前R进程可以继续干活。 在Rstudio下只能使用 plan(multisession, workers5)。在shell R下还可以使用 plan(multiprocess) plan(multicore)[Not supported on Windows.] Strategy ‘multiprocess’ is deprecated in future ( 1.20.0) [2020-10-30]. Instead, explicitly specify either ‘multisession’ (recommended) or ‘multicore’. In the current R session, ‘multiprocess’ equals ‘multisession’. 1. 非阻塞的启动R多进程支线任务 # 第一步开启多线程。只能linux系统必须开多线程 library(future) plan(multisession, workers 3) # 设置为多进程模式# 第二部定义耗时任务 save_task - future({pidSys.getpid()print( paste0(Start ..., pid) )#save.image(before.RData)Sys.sleep(30) # 模拟耗时1小时# 这里保存Rds文件可能需要花费几十分钟到2个小时# save.image(end.RData)print( paste0(End..., pid) )100 #最后一行是线程的返回值类似函数的感觉。 })# 第三步继续执行其他任务 # 在任务运行时可以继续执行其他代码不用等待耗时任务结束 print(正在后台保存文件可以继续执行其他任务...)2.检查一个支线任务是否结束 要检查任务的状态可以使用 value() 函数它会阻塞直到任务完成并返回结果。resolved() 函数用于检查任务是否已完成是非阻塞的。如果想非阻塞地检查结果可以结合使用 resolved() 和 value() 函数。 # f 是一个future任务 # 非阻塞地检查是否完成 if (resolved(f)) {result - value(f) # 如果已完成获取结果print(result) } else {print(任务尚未完成) }继续本示例 resolved(save_task) #非阻塞的查看状态可以随时查看状态返回T/Fvalue(save_task ) #阻塞的查看返回结果最后一行的值 [1] Start ...1389 [1] End...1389plan(sequential) # 恢复 设置为单进程模式3. 等待所有支线任务都结束 场景分别计算每个亚群的高变基因每个亚群都计算完才能进行下一步。 # arr 是数组其成员是 future 变量 while(any(!resolved(arr))){ } #阻塞直到所有支线都出结果直到任何一个都是T4. 竞速模式等待最快的一个线程得到结果 场景分别使用多个网站下载数据只要有一个途径下载好即可开始下一步。 require(future) #plan(multiprocess) plan(multisession, workers5)longRunningFunction - function(value, seed0) {set.seed(seed)random1- runif(min 5 ,max 30,n 1)Sys.sleep(random1)return(value) }arr list()#changed starting number to 1 since R lists start at 1, not 0 i1#If the number of futures generated is more than the number of cores available, then the main thread will block until the first future completes and allows more futures to be started while(i 6) {arr[[i]] future(longRunningFunction(i, seed i), seed T)i i 1 }# 一开始都是F都没有解析出最后都是T都解析了。 while(any(!resolved(arr))){ } #阻塞直到所有支线都出结果直到任何一个都是T #while(all(!resolved(arr))){ } #阻塞直到有一个支线出结果: 直到至少一个是T[竞速模式]raceresults_from_future-lapply(arr[resolved(arr)], value) print(paste(raceresults_from_future: ,raceresults_from_future) )5. 传入环境给多线程的内存消耗瘦身 future开启的支线默认是复制主进程的全部环境这会导致R的内存开销很大而其中很大一部分是用不到的拷贝。 可以手动指定某些变量传入执行环境来达到多进程内存瘦身的目的。 out.a123# 1 开启多线程。只能linux系统必须开多线程 library(future) plan(multisession, workers 3) # 设置为多进程模式# 2 创建环境 # 用于限定多进程拷贝的变量个数默认是拷贝父进程的整个环境 e1 - new.env(parent baseenv()) e1$aout.a1902 get(a, e1) #2025 #获取环境中的变量值assign(b, -3210, envir e1) #给环境e1中的变量b赋值 get(b, envir e1) #03210 获取环境中的变量值# 3 环境作为future的第二个参数 task2 - future({pidSys.getpid()print(sprintf(task [%s], pid))Sys.sleep(5)a100 #最后一行是线程的返回值类似函数的感觉。 }, envir e1 ) #envir 传入变量否则默认传入父环境# 可以执行其他任务# 4 查看多进程结果 resolved(task2) #非阻塞(立刻返回)的查看状态可以随时查看状态返回T/F while(!resolved(task2)){} #阻塞直到支线任务完成 value(task2 ) #阻塞的(直到有结果)查看返回结果最后一行的值 2125 task2plan(sequential) # 恢复 设置为单进程模式Ref: https://rstudio.github.io/promises/articles/promises_03_overview.html竞速模式 https://stackoverflow.com/questions/52040744/r-waiting-for-a-list-of-promises-to-resolve
http://www.hkea.cn/news/14295330/

相关文章:

  • wordpress下载站模板营销软文范文200字
  • 普洱建设网站做传销网站违法的吗
  • 太原网站建设方案托管网站开发超链接点击后变色
  • 做个网站需要什么设备网站站群建设
  • 漯河网站推广多少钱网站网站建设策划书
  • 网站建设经验交流材料成都旅行社网站建设
  • 雄安建设集团有限公司网站蓝色主题的网站模板
  • 山河建设集团有限公司的网站个人网页英文
  • 做百度网站一年多少钱找公司制作app多少钱
  • 网站做cpa赚钱吗杭州哪家网站建设公司好点
  • 门户网站建设公司价位网站的后台怎么做
  • 上海高登联合建设网站电商seo与sem是什么
  • 什么网站做视频最赚钱网站模板网站
  • 郓城菏泽网站建设免费动图制作app
  • 玉溪市住房城乡建设局网站用手机怎样免费做网站
  • 小组做数据库网站现在哪个网站做电商好
  • 直播网站建设项目策划书wordpress 无法发送邮件
  • 有做网站设计吗广州seo网站开发
  • 软件公司门户网站模板网站开发项目组成员
  • 建设官方网站怎么登录wordpress百度收录
  • 天津市建设工程备案网站宝安网站设计案例
  • SEO网站布局优化现在还用dw做网站设计么
  • 做微信公众号的网站有哪些网站的一般制作流程
  • 青岛微网站类wordpress
  • 六安网站建设定制wordpress 热门 tags
  • 广西做网站公司排名wordpress博客页修改
  • 魔方 网站建设 有限公司销售怎么找客户
  • 做网站练手电信网站服务器
  • 虚拟主机和网站的关系wordpress多广告位
  • 网站素材模板旅游html网页怎么做