h5 真正的线程worker

推荐  http://www.cnblogs.com/feng_013/archive/2011/09/20/2175007.html  click

h5 真正的线程worker,但是不能异步dom

worke.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div οnclick="f()">kkkkk</div>
	</body>
	<script>
	
		var worker=new Worker('test.js');
		
		worker.postMessage(1000000000);
		worker.onmessage=function(e){
			console.log(e.data)
		}
		
	function f(){alert(1)}
	</script>
</html>
test.js

	onmessage=function(e){console.log(e)
		var num=e.data;
		var result=0;
		for (var i=0;i<num;i++){
			result=i;
			
		}
		
		postMessage('计算完了');
	}


共享worker   :   http://blog.sina.com.cn/s/blog_63940ce201018lyh.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GUI线程Worker线程是常见的多线程编程模型,用于实现图形用户界面(GUI)应用程序的并发处理。 1. GUI线程(也称为主线程):GUI线程负责处理用户界面的绘制、响应用户输入等任务。在大多数GUI框架中,GUI线程也是事件循环线程,负责监听和分发用户事件(如鼠标点击、键盘输入)并对其作出相应的响应。在这种模型下,GUI线程通常是单线程的,意味着在GUI线程中执行的任何耗时操作都会导致界面冻结,造成用户体验下降。 2. Worker线程Worker线程用于执行耗时的任务,以避免在GUI线程中阻塞。这些任务可以是计算密集型的操作,如图像处理、数据分析等,也可以是I/O密集型的操作,如文件读写、网络请求等。通过将这些任务放在Worker线程中执行,可以保持GUI线程的响应性,使用户能够继续与界面进行交互。 在实际开发中,通常采用以下方式来实现GUI线程Worker线程的协同工作: 1. 任务分发:GUI线程接收用户事件,并将耗时任务委托给Worker线程处理。这可以通过消息队列、事件驱动等机制来实现,GUI线程将任务放入队列中,Worker线程从队列中取出任务并执行。 2. 线程间通信:GUI线程Worker线程之间需要进行数据交换和同步。常见的线程间通信方式包括使用线程安全的队列、事件、互斥锁、条件变量等机制。 3. 界面更新:在Worker线程执行完耗时任务后,需要将结果返回给GUI线程,并更新界面显示。通常可以通过回调函数、信号槽机制等方式来实现。 需要注意的是,在多线程编程中,要注意线程安全性和资源管理,避免竞态条件、死锁等问题的发生。此外,对于一些特殊的操作,如对GUI组件的修改,可能需要在GUI线程中执行,以避免跨线程访问的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值