为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > java进程与多线程笔记

java进程与多线程笔记

2018-03-22 16页 doc 37KB 11阅读

用户头像

is_614050

暂无简介

举报
java进程与多线程笔记java进程与多线程笔记 进程与多线程: 当一个应用的组件开始运行,并且这个应用没有其它的组件在运行,系统会为这个应用启动一个新的Linux进程,这个进程只有一个线程(默认情况下,一个应用的所有组件都运行在一个进程和线程(叫做“main”主线程)中。如果组件启动时,已经存在应用程序的进程了(因为应用程序的其它组件已经在运行了),则此组件会在已有的进程和线程中启动运行。不过,可以指定组件运行在其他进程里,也可以为任何进程创建额外的线程。 一、进程 默认情况下,同一个应用程序内的所有组件都是运行在同一个进程中的,大部分应用...
java进程与多线程笔记
java进程与多线程笔记 进程与多线程: 当一个应用的组件开始运行,并且这个应用没有其它的组件在运行,系统会为这个应用启动一个新的Linux进程,这个进程只有一个线程(默认情况下,一个应用的所有组件都运行在一个进程和线程(叫做“main”主线程)中。如果组件启动时,已经存在应用程序的进程了(因为应用程序的其它组件已经在运行了),则此组件会在已有的进程和线程中启动运行。不过,可以指定组件运行在其他进程里,也可以为任何进程创建额外的线程。 一、进程 默认情况下,同一个应用程序内的所有组件都是运行在同一个进程中的,大部分应用程序也不会去改变它。不过,如果需要指定某个特定组件所属的进程,则可以利用manifest 文件来达到目的。 manifest文件中的每种组件元素————都支持定义android:process属性,用于指定组件运行的进程。 1、android:process属性指定名称以:开头,则一个新的专属与该应用的进程将会被创建。没有这个标签的的组件会运行在默认的“com.example.process”中 ps:android:process=“:myprocess”那么将会创建一个“包名.myprocess”的进程。 2、如果没有以:开头,则会让该组件运行在意个全局的进程中。 Android是支持多线程的。Android可能在某些时刻决定关闭一个进程,比如内存很少了并且另一个进程更迫切的需要启动时(进程被关闭时,其中的组件们都被销毁(如果重新需要这些组件工作时,进程又会被创建出来。 进程的优先级划分: 1、前台进程: 用户当前正在做的事情需要这个进程。如果满足下面的条件,一个进程就被认为是前台进程: 这个进程拥有一个正在与用户交互的Activity(这个Activity的onResume()方法被调用)。 这个进程拥有一个绑定到正在与用户交互的activity上的Service。 这个进程拥有一个前台运行的Service — service调用了方法startForeground(). 这个进程拥有一个正在执行其任何一个生命周期回调方法(onCreate(),onStart(),或onDestroy())的Service。 这个进程拥有正在执行其onReceive()方法的BroadcastReceiver。 通常,在任何时间点,只有很少的前台进程存在。它们只有在达到无法调合的矛盾时才会被杀,,如内存太小而不能继续运行时。通常,到了这时,设备就达到了一个内存分页调度状态,所以需要杀一些前台进程来保证用户界面的反应,前台进程也是最后被杀死的。 2、可见进程: 一个进程不拥有运行于前台的组件,但是依然能影响用户所见。满足下列条件时,进程即为可见: 这个进程拥有一个不在前台但仍可见的Activity(它的onPause()方法被调用)。ps:当一个前台activity启动一个对话框时 它绑定在可见的Activity之上的Service 一个可见进程被认为是极其重要的。并且,除非只有杀掉它才可以保证所有前台进程的运行,否则是不能动它的。 3、服务进程: 一个进程不在上述两种之内,但它运行着一个被startService()所启动的service 尽管一个服务进程不直接影响用户所见,但是它们通常做一些用户关心的事情(比如播放音乐或下载数据),所以系统不到前台进程和可见进程活不下去时不会杀它。 4、后台进程 一个进程拥有一个当前不可见的activity(activity的onStop()方法被调用)。 5、空进程 一个进程不拥有入何active组件。 保留这类进程的唯一理由是高速缓存,这样可以提高下一次一个组件要运行它时的启动速度。系统经常为了平衡在进程高速缓存和底层的内核高速缓存之间的整体系统资源而杀死它们。 二、UI线程 当一个程序第一次启动时,Android会同时启动一个对应的主线程 (Main Thread),主线程主要负责处理与UI相关的事件, 如用户的 按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件 分发到对应的组件进行处理。 所以主线程通常又被叫做UI线程。//android中规定,不能阻塞UI线程大于5秒钟。否则将会报应用程序无法响应的错误。 Android的UI模型中有两点约束: 1、不要阻塞UI线程,超过5秒回报错, 2、不要让UI线程之外的其他线程去访问Android的UI工具, 那么解决这个问题的方法有哪些呢, 1、使用新线程访问UI,并使用新线程更新UI。 2、在线程间进行通信,让想更新UI的其他线程给UI线程发送消息。UI线程根据消息来更新UI。 3、使用Android提供的AsyncTask。 主线程与子线程 我们创建的Service、Activity以及Broadcast均是一个主线程处理, 这里我们可以理解为UI线程。 但是在操作一些耗时操作时,比如I/O 读写的大文件读写,数据库操作以及网络下载需要很长时间,为了不 阻塞用户界面, 出现ANR的响应提示窗口,这个时候我们可以考虑使 用 Thread线程来解决 . 子线程操作 在Android中,只要是关于UI相关的东西,就不能放在子线程中,因为子线程是不能操作UI的,只能进行数据、系统等其他非UI的操作。 在单线程模型下,为了解决类似的问题,Android设计了 一个Message Queue(消息队列), 线程间可以通过该 Message Queue并结合Handler和Looper组件进行信息交换。 后会发送消息给主线程,这个 ps:一个子线程从网络上下载了一副图片,当它下载完成 消息是通过绑定在主线程的 Handler来传递的。 Message 它是线程间通信的信息的载体。它包含一些特定的描述的信息和任意的附加的数据, obtain()方法可以从全局的Message Pool中返回一个Message对象。消息池是由系统维护的,它的大小为10;系统已经留好了10个线程,这样就 不需要每次都是创建了。 它有以下一些 属性字段:arg1、arg2、what、obj、replyTo等 其中arg1和arg2是用来存放整型数据的,what是用来保存消息标示的,obj是Object类型的任意对象,replyTo是消息管理器。 MessageQueue Message Queue消息队列,用来存放通过Handler发布的消 息,按照先进先出执行。 每个message queue都会有一个对应的Handler。 Handler会向message queue通过两种方法发送消息: sendMessage或post。 这两种消息都会插在message queue 队尾并按先进先出执行。 Handler Handler承担着接受子线程传过来的(子线程用sedMessage()或 sendEmptyMessage方法传弟)Message对象(里面包含数据), 把这些消 息放入主线程队列中,配合主线程进行更新UI 使用Handler,需要implement 该类的 handleMessage(Message)方法, 它是处理这些Message的操作内容,例如Update UI。通常需要子类化 Handler来实现handleMessage方法。 Handler可以分发Message对象和Runnable对象到主线程中, 每个 Handler实例,都会绑定到创建他的线程中(一般是位于主线程), 它有两个作用: 安排消息或Runnable 在某个主线程中某个地方执行, 安排一个动作在不同的线程中执行 Looper Looper是每条线程里的Message Queue的管家.是线程用来循环消息用的。我们需要调用perpare()方法,然后调用loop()方法去处理消息 perpare()方法:建立线程的Looper对象。 loop()方法:运行本线程的Looper对象。 通常是通过Handler对象来与Looper进行交互的。Handler可看做是Looper的一个接口,用来向指定的Looper发送消息及定义处理方法。 默认情况下Handler会与其被定义时所在线程的Looper绑定,比如,Handler在主线程中定义,那么它是与主线程的Looper绑定。 mainHandler = new Handler() 等价于new Handler(Looper.myLooper()). 在非主线程中直接new Handler() 会报如下的错误 E/AndroidRuntime( 6173): Uncaught handler: thread Thread-8 exiting due to uncaught exception E/AndroidRuntime( 6173): java.lang.RuntimeException: Can't create handler inside thread that has not called 注意:写在Looper.loop()之后的代码不会被执行,这个函数内部应该是一个循环,当调用mHandler.getLooper().quit()后,loop才会中止,其后 的代码才能得以运行。 class MyThread extends Thread { @Override public void run() { Looper.prepare(); mHandler = new Handler() { @Override public void handleMessage(Message msg) { Toast.makeText(getApplicationContext(), ""+Thread.currentThread(), Toast.LENGTH_SHORT).show(); } }; Looper.loop(); } } AnyncTask 为了解决上述的这个问题,Android 1.5提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单。相对来说 AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和Handler即可实现。 AsyncTask是抽象类.AsyncTask定义了三种泛型类型 Params,Progress和Result。 Params 启动任务执行的输入参数,比如HTTP请求的URL。 Progress 后台任务执行的百分比。 Result 后台执行任务最终返回的结果,比如String。 AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。 1) 子类化AsyncTask 2) 实现AsyncTask中定义的下面一个或几个方法 onPreExecute(), 该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。 doInBackground(Params...), 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。 onProgressUpdate(Progress...),在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。 onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread. 为了正确的使用AsyncTask类,以下是几条必须遵守的准则: 1) Task的实例必须在UI thread中创建 2) execute方法必须在UI thread中调用 3) 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法 4) 该task只能被执行一次,否则多次调用时将会出现异常 doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第第三个为doInBackground返回和onPostExecute传入的参数。 最后需要说明AsyncTask不能完全取代线程,在一些逻辑较为复杂或者需要在后台反复执行的逻辑就可能需要线程来实现了。 文 - 汉语汉字 编辑词条 文,wen,从玄从爻。天地万物的信息产生出来的现象、纹路、轨迹,描绘出了阴阳二气在事物中的运行轨迹和原理。 故文即为符。上古之时,符文一体。 古者伏羲氏之王天下也,始画八卦,造书契,以代结绳(爻)之政,由是文籍生焉。--《尚书序》 依类象形,故谓之文。其后形声相益,即谓之字。--《说文》序》 仓颉造书,形立谓之文,声具谓之字。--《古今通论》 (1) 象形。甲骨文此字象纹理纵横交错形。"文"是汉字的一个部首。本义:花纹;纹理。 (2) 同本义 [figure;veins] 文,英语念为:text、article等,从字面意思上就可以理解为文章、文字,与古今中外的各个文学著作中出现的各种文字字形密不可分。古有甲骨文、金文、小篆等,今有宋体、楷体等,都在这一方面突出了"文"的重要性。古今中外,人们对于"文"都有自己不同的认知,从大的方面来讲,它可以用于表示一个民族的文化历史,从小的方面来说它可用于用于表示单独的一个"文"字,可用于表示一段话,也可用于人物的姓氏。 折叠编辑本段基本字义 1(事物错综所造成的纹理或形象:灿若,锦。 2.刺画花纹:,身。 3(语言的符号:,字。,盲。以,害辞。 4(用文字记下来以及与之有关的:,凭。,艺。,体。,典。,苑。,献(指有历史价值和参考价值的图书资料)。,采(a(文辞、文艺方面的才华;b(错杂艳丽的色彩)。 5(人类劳动成果的总结:,化。,物。 6(自然界的某些现象:天,。水,。 7(旧时指礼节仪式:虚,。繁,缛节(过多的礼节仪式)。 8(文华辞采,与“质”、“情”相对:,质彬彬。 9(温和:,火。,静。,雅。 10(指非军事的:,职。,治武功(指礼乐教化和军事功绩)。 11(指以古汉语为基础的书面语:552,言。,白间杂。 12(专指社会科学:,科。 13(掩饰:,过饰非。 14(量词,指旧时小铜钱:一,不名。 15(姓。 16( 皇帝谥号,经纬天地曰文;道德博闻曰文;慈惠爱民曰文;愍民惠礼曰文;赐民爵位曰文;勤学好问曰文;博闻多见曰文;忠信接礼曰文;能定典礼曰文;经邦定誉曰文;敏而好学曰文;施而中礼曰文;修德来远曰文;刚柔相济曰文;修治班制曰文;德美才秀曰文;万邦为宪、帝德运广曰文;坚强不暴曰文;徽柔懿恭曰文;圣谟丕显曰文;化成天下曰文;纯穆不已曰文;克嗣徽音曰文;敬直慈惠曰文;与贤同升曰文;绍修圣绪曰文;声教四讫曰文。如汉文帝。 折叠编辑本段字源字形 字源演变与字形比较 折叠编辑本段详细字义 〈名〉 1(右图是 “文”字的甲骨文图片,资料来源:徐无闻主编:《甲金篆隶大字典》,四川辞书出版社。1991年7月第一版。 “文”字的甲骨文字绘画的像一个正面的“大人”,寓意“大象有形”、“象形”;特别放大了胸部,并在胸部画了“心”,含义是“外界客体在心里面的整体影像、整体写真、整体素描、整体速写”。 许慎《说文解字》把“文”解释为“错画也”,意思是“对事物形象进行整体素描,笔画交错,相联相络,不可解构”,这与他说的独体为文、合体为字的话的意思是一致的。“说文解字”这个书名就表示了“文”只能“说”,而“字”则可“解”的意思。“文”是客观事物外在形象的速写,是人类进一步了解事物内在性质的基础,所以它是“字”的父母,“字”是“文”的孩子。“文”生“字”举例(以“哲”为例):先对人手摩画,其文为“手”;又对斧子摩画,其文为“斤”。以手、斤为父母,结合、生子,其子就是“折”(手和斤各代表父母的基因)。这个“折”就是许慎所谓的“字”。“字”从宀从子,“宀”表示“独立的房子”,子在其中,有“自立门户”的意思。故“字”还能与“文”或其他“字”结合,生出新“字”来。在本例,作为字的“折”与作为文的“口”结合,就生出了新的字“哲”。 2( 同本义 [figure;veins] 文,错画也。象交文。今字作纹。——东汉?许慎《说文》 五章以奉五色。——春秋?左丘明《左传?昭公二十五年》。注:“青与赤谓之文,赤与白谓之章,白与黑谓之黼,黑与青谓之黻。” 美于黼黼文章。——《荀子?非相》 茵席雕文。——《韩非子?十过》 织文鸟章,白旆央央。——《诗?小雅?六月》 斑文小鱼。——明? 刘基《诚意伯刘文成公文集》 3(又如:文驾(彩车);文斑(杂色的斑纹);文旆(有文彩的旗帜);文绣(绣有彩色花纹的丝织品;刺花图案);文织(有彩色花纹的丝织品);文鳞(鱼鳞形花纹)。 4(字,文字(“文”,在先秦时期就有文字的意思,“字”,到了秦朝才有此意。分别讲,“文”指独体字;“字”指合体字。笼统地说,都泛指文字。) [character] 饰以篆文。——南朝宋?范晔《后汉书?张衡传》 分文析字。——东汉?班固《汉书?刘歆传》 夫文,止戈为武。——《左传?宣公十二年》 距洞数百步,有碑仆道,其文漫灭。——王安石《游褒禅山记》 文曰“天启壬戌秋日”。——明? 魏学洢《核舟记》 文曰“初平山尺”。 5(又如:甲骨文;金文;汉文;英文;文迹(文字所记载的事迹);文书爻(有关文字、文凭之类的卦象);文异(文字相异);文轨(文字和车轨);文狱(文字狱);文钱(钱。因钱有文字,故称);文状(字据,军令状);文引(通行证;路凭);文定(定婚)。 6(文章(遣造的词句叫做“文”,结构段落叫做 “章”。) [literary composition] 故说诗者不以文害辞。——《孟子?万章上》 好古文。——唐? 韩愈《师说》 属予作文以记之。——宋? 范仲淹《岳阳楼记》 能述以文。——宋? 欧阳修《醉翁亭记》 摘其诗文。——清? 纪昀《阅微草堂笔记》 7(又如:文价(文章的声誉);文魔(书呆子);文会(旧时读书人为了准备应试,在一起写文章、互相观摩的集会);文移(旧时官府文书的代称);文雄(擅长写文章的大作家);文意(文章的旨趣);文义(文章的义理);文情(文章的词句和情思);本文(所指的这篇文章);作文(写文章;学习练习所写的文章);文魁(文章魁首);文价(文章的声价);文什(文章与诗篇)。 8(美德;文德 [virtue] 圣云继之神,神乃用文治。——杜牧《感怀诗一首》 9(又如:文丈(对才高德韶的老者的敬称);文母(文德之母);文武(文德与武功);文命(文德教命);文惠(文德恩惠);文德(写文章的道德);文薄(谓文德浅薄);文昭(文德昭著)。 10.文才;才华。亦谓有文才,有才华 [literary talent] 而文采不表于后世也。——汉? 司马迁《报任安书》 11(又如:文业(才学);文英(文才出众的人);文采风流(横溢的才华与潇洒的风度);文郎(有才华的青少年);文彦(有文才德行的人);文通残锦(比喻剩下不多的才华)。 12(文献,经典;韵文 [document;classics;verse] 儒以文乱法。——《韩非子?五蠹》 言必遵修旧文而不穿凿。——《说文解字?叙》 13(辞词句。亦指文字记载 [writings;record]。如:文几(旧时书信中开头常用的套语。意为将书信呈献于几前);文倒(文句颠倒);文过其实(文辞浮夸,不切实际);文义(文辞);文辞(言词动听的辞令);文绣(辞藻华丽)。 14(自然界的某些现象 [natural phenomenon] 经纬天地曰文。——《左传?昭公二十八年》 15(又如:天文;地文;水文;文象(日月星辰变化的迹象);文曜(指日月星辰;文星);文昌(星座名)。 16(文治;文事;文职。与“武”相对。 [achievements in culture and education;civilian post] 文能取胜。——《史记?平原君虞卿列传》 文不能取胜。 文武并用。——唐? 魏征《谏太宗十思疏》 精神折冲于千里,文武为宪于万邦。――明《袁可立晋秩兵部右侍郎诰》 17(又如:文臣,文吏(文职官吏);文席(教书先生的几席);文品(文官的品阶);文帅(文职官员出任或兼领统帅);文烈(文治显赫);文员(文职吏员);文阶(文职官阶);文道(文治之道);文业(文事);文僚(文职官吏)。 18(法令条文 [articles of decree] 而刀笔吏专深文巧诋,陷人于罪。——《史记?汲黯列传》 19(又如:文劾(根据律令弹劾);文法吏(通晓法令、执法严峻的官吏);文丈(规矩;);文移(官府文书);文牓(布告;文告);文宪(礼法;法制)。 20(文言。古代散文文体之一;别于白话的古汉语书面语 [literary language]。如:半文 半白;文语;文白(文言文和白话文)。 21(文教;礼节仪式 [rites] 则修文德。——《论语?季氏》 22(又如:文丈(崇尚礼文仪节);文俗(拘守礼法而安于习俗);文致(指礼乐);文貌(礼文仪节);文绪(文教礼乐之事);文仪(礼节仪式) 23(指表现形式;外表 [form;appearance]。如:文服(表面服从);文榜(告示、布告之类);文诰(诰令) 24(指鼓乐,泛指曲调 [music;tune]。如:文曲(指乐曲);文始(舞乐名) 25(谥号,谥法:勤学好问叫文 [study deligently] 何以谓之文。——《论语》 是以谓之文。 26(姓 〈动〉 1(在肌肤上刺画花纹或图案 [tatto (the skin)] 被发文身。——《礼记?王制》。注:“谓其肌,以丹青涅之。” 文绣有恒。——《礼记?月令》 2(又如:文笔匠(在人身上刺花的艺人);文身断发(古代荆楚、南越一带的习俗。身刺花纹,截短头发,以为可避水中蛟龙的伤害。后常以指落后地区的民俗);文木(刻镂以文采之木) 3(修饰;文饰 [cover up] 身将隐,焉用文之?——《左传?僖公二十三年》 饰邪说,文奸言,以枭乱天下。——《荀子?非十二子》 4(又如:文过饰非;文致(粉饰;掩饰);文冢(埋葬文稿之处) 5(装饰 [decorate] 舍其文轩。——《墨子?公输》 此犹文奸。 文车二驷。——明? 归有光《项脊轩志》 文马四百匹。——《史记?宋世家》 若将比予文木邪。——《庄子?人间世》 6(又如:文巧(文饰巧辩);文竿(以翠羽为饰之竿);文舫(装饰华丽的游艇);文饰(彩饰);文榭(饰以彩画的台榭);文舟,文艘(装饰华丽的船);文剑(装饰华丽的剑);文舆(饰以彩绘的车) 7(撰写文章 [write]。如:文匠(写文章的大家);文祸(因写文章而招来的灾祸);文雄,文杰(指文豪) 〈形〉 1(有文采,华丽。与“质”或“野”相对 [magnificent;gorgeous] 其旨远,其辞文。——《易?系辞下》 晋公子广而俭,文而有礼。——《左传?僖公二十三年》 2(又如:文巧(华丽奇巧);文朴(文华与质朴);文服(华美的衣服);文砌(华美的石阶);文背(不文雅,粗俗);文轩(华美的车子);文质(文华与质朴) 3.柔和,不猛烈 [mild;gentle]。如:文烈(指火候温猛) 4(美,善 [fine;good]。如:文徽(华美);文鸳(即鸳鸯。以其羽毛华美,故称);文衣(华美的服装) 5(通“紊”。紊乱的 [disordered] 惇宗将礼,称秩元祀,咸秩无文。——《书?洛诰》 天子祭天下名山大川,怀柔百神,咸秩无文。——《汉书?郊祀志上》 王者报功,以次秩之,无有文也。——庆劭《风俗通义?山泽》 〈量〉 1(用于旧时的铜钱。如:一文钱 2(用于计算纺织物 五扶为一首,五首成一文。——《后汉书》
/
本文档为【java进程与多线程笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索