
多线程_thread
文章平均质量分 75
manoel
这个作者很懒,什么都没留下…
展开
-
【并发编程】线程和进程的关系
一、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。二、线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程; 进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有原创 2014-10-11 12:01:06 · 2088 阅读 · 1 评论 -
【并发编程】线程优先级
事实证明,线程的优先级是影响线程的调度的主要因素。其他因素包括占用CPU的执行时间长短,线程分组调度等等。另外,有两种方法可以设置线程的优先级。android.os.ProcessProcess.setThreadPriority(int priority); // Calling thread.Process.setThreadPriority(int threadId, int priority); // Thread with specific id.通过这种方式设置的优先级,又称“原创 2014-10-11 14:46:37 · 2174 阅读 · 0 评论 -
【并发编程】通过命令行获取线程信息
常用命令adb shell ps-t查看进程中线程的信息-x查看utime和stime-P查看属性-p查看调度策略,通常是查看一个app处于前台还是后台-c查看哪一个CPU在执行这个进程name|pid用名字或pid过滤例子1. 查看包名为com.eat的线程,也就是com.eat应用的UI线程。adb shell ps -t |grep com.eatUSER PID PPID VSIZE RSS WCHAN原创 2014-10-11 11:58:12 · 8785 阅读 · 2 评论 -
【并发编程】实现多线程的两种方法
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方原创 2014-10-10 17:52:09 · 2565 阅读 · 0 评论 -
【并发编程】生产者与消费者模式
生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。Java实现简单的生产者-消费者模式例子。import原创 2014-10-10 17:40:49 · 2350 阅读 · 0 评论 -
【并发编程】线程间通信的方式
管道流Pipes“管道”是java.io包的一部分,它是Java的特性,而不是Android特有的。一条“管道”为两个线程建立一个单向的通道。生产者负责写数据,消费者负责读取数据。public class PipeExampleActivity extends Activity { private static final String TAG = "PipeExampleActivity"; private EditText editText; PipedReader原创 2014-08-31 22:40:40 · 12253 阅读 · 8 评论 -
【并发编程】系统架构和组件详解
写在前面的话如果对Android开发还不是特别了解的同学,可以参考我之前翻译的Android开发教程。http://blog.youkuaiyun.com/column/details/development4android.html软件栈The software stack in Android.Applications 应用层,包括使用Java库和Android框架所编写的程序。Core Java Java类库,并不是完全的Java SE或Java ME的实现,而是Apache原创 2014-08-10 12:46:11 · 3645 阅读 · 6 评论 -
【并发编程】Binder运行机制的流程图
Binder工作在Linux层面,属于一个驱动,只是这个驱动不需要硬件,或者说其操作的硬件是基于一小段内存。从线程的角度来讲,Binder驱动代码运行在内核态,客户端程序调用Binder是通过系统调用完成的。参考资料http://blog.youkuaiyun.com/manoel/article/details/39556219原创 2014-10-16 13:35:50 · 2908 阅读 · 0 评论 -
【并发编程】程序的启动和终结
Android是一个多用户,多任务的系统。允许多个app在同一时刻执行,在多个程序之间切换并不会有明显的延迟。多任务是由Linux内核负责处理的,而程序的运行基于Linux进程。Linux进程Linux为每一个用户分配一个唯一的用户ID(User ID),用于区分不同的User。因为权限的原因,每一个用户只能访问私有资源,没有用户(除了Root用户,即超级管理员。我们这里不考虑这个用户。)可以访问其他用户的私有资源。因而,“沙盒”就用来独立这些用户。在Android中,每一个应用都有一原创 2014-08-13 10:13:17 · 2694 阅读 · 8 评论 -
【并发编程】AIDL关键字
onewayOneway interfacesIn early betas, the Android IPC was strictly synchronous. This means that service invocations had to wait for the return value of the remote method to arrive back to the caller. This is generally an advantage because the caller ca原创 2014-10-16 11:44:01 · 6126 阅读 · 0 评论