㈠ Android的App中线程池的使用,具体使用多少个线程池
这个需要根据实际情况来确定的,一般来说根据模块的功能和优先级来区分,比如你一些必须加载的如用户登录就不要和图片加载的用同一个线程池,当然这种情况比较少见,用户和服务器配置数据的应该单独用一个线程池,下载模块应该独立一个,其它数据展示的用一个,曾经就出现过APP启动的时候请求的线程过多导致用户登录线程一直排不上超时的情况
㈡ 怎么调用线程
首先谈一下什么事线程,线程就是一个程序执行的任务,一个任务称呼为一个线程。比如,我的任务管理器中有打开编辑器的,有打开网页的等等,每一个都可以称之为线程,具体如图
㈢ Python中的线程池是什么
多线程的做法是,可以同时创建多个线程放入等待执行的序列中。某个线程执行完毕就将它从序列中移除并销毁。不然的话,即时创建,然后就一定要等到它销毁,那这不是多线程,这是单线程.
进程中根据需要,为一些需要慢资源、竟争性资源的任务创建线程,排除等候执行。
线程需要等待分配,如果短时间建立了多个线程,哪个线程先开始执行,由调度程序决定;
...调度>>>执行>>>循环
当线程执行完毕,销毁线程。
比如说,下载图片:我有一个列表,记录了要下载的300张图片的URL。每个图片的来源可能是不同网站(服务器)。那么,主循环里只需要创建300个【下载】线程。每个线程负责一个URL的下载任务。
然后,调序程序开始调度:线程1有数据过来了,分配时间片给线程1处理这段数据...线程n执行完毕,销毁线程n...线程1又有数据过来了,分配时间片给线程1处理这段数据......销毁线程n,没有等待中的线程,调度暂停。
于是,所有的图片下载完了。
这个过程与单线程的不同是,在多线程中,最开始同一时间有300个请求在等待若干个服务器返回数据,而单线程则总是只有一个请求在等待服务器返回数据或者正在处理数据,另外299个请求根本不存在。
这才是多线程与单线程最主要的差别:在等待某个资源的时候,把其它资源给别的线程去使用。
㈣ java多线程有几种实现方法
继承Thread类来实现多线程:
当我们自定义的类继承Thread类后,该类就为一个线程类,该类为一个独立的执行单元,线程代码必须编写在run()方法中,run方法是由Thread类定义,我们自己写的线程类必须重写run方法。
run方法中定义的代码为线程代码,但run方法不能直接调用,如果直接调用并没有开启新的线程而是将run方法交给调用的线程执行
要开启新的线程需要调用Thread类的start()方法,该方法自动开启一个新的线程并自动执行run方法中的内容
*java多线程的启动顺序不一定是线程执行的顺序,各个线程之间是抢占CPU资源执行的,所有有可能出现与启动顺序不一致的情况。
CPU的调用策略:
如何使用CPU资源是由操作系统来决定的,但操作系统只能决定CPU的使用策略不能控制实际获得CPU执行权的程序。
线程执行有两种方式:
1.抢占式:
目前PC机中使用最多的一种方式,线程抢占CPU的执行权,当一个线程抢到CPU的资源后并不是一直执行到此线程执行结束,而是执行一个时间片后让出CPU资源,此时同其他线程再次抢占CPU资源获得执行权。
2.轮循式;
每个线程执行固定的时间片后让出CPU资源,以此循环执行每个线程执行相同的时间片后让出CPU资源交给下一个线程执行。
㈤ android什么时候需要线程池
系统提供了AsyncTask,AsyncTask本身就维护一个线程池呢,还有就是Java本身提供的Executors,应用场景的话平时用到网络请求的时候就需要用到线程池,还有就是图片的缓存的时候也需要用到线程池,比如说listview的item里面有图片需要加载,就需要开启线程池就加载。
㈥ 什么时候使用多线程
你找图片应该是一个单独的方法把....
不同的窗口来访问的时候 都是会调用这个方法...这个不用多线程..
比如servlet这种,由线程池中的多个线程来访问方法体 不用你自己去创建线程来访问
具体我也不太清楚 ,等高手来解释
㈦ C# 线程池
加个sleep(10);