潜艇,神秘而威武,被誉为"水下尖刀"。近日有美媒称,今年晚些时候,位于黄海边上的中国新潜艇工厂将开始建造首艘095型攻击核潜艇。外界预计该型号核潜艇将采用高强度单双混合壳体结构、泵喷推进系统以及垂直发射管,其性能将超过美国"洛杉矶"级3型或俄罗斯"阿库拉"级2型等攻击型核潜艇。军事专家指出,攻击型核潜艇可担负侦察监视、反潜、对陆攻击以及护卫战略导弹核潜艇等任务,可大幅提升海军的近海防御、远海护卫能力。 参考消息网上周引述美国《大众科学》月刊网站文章指,中国正在建设世界最大的核潜艇建造设施。报道称,在渤船重工的新工厂里,设备安装工作已进入收尾阶段,工厂今年即将投产。报道称,全新的厂房规模庞大,面积超过4万平方米,足以容纳两条平行的生产线,每条生产线一半用于组装潜艇模块,另一半用来在最后给船体安装消声瓦等降噪设备。该厂的空间足够同时建造四艘攻击核潜艇。 渤船重工新厂房设有两条生产线。网络图片 可携对陆攻击导弹 据报道,今年晚些时候,该工厂将开始建造首艘095型攻击核潜艇。预计该型号核潜艇将采用高强度单双混合壳体结构、泵喷推进系统以及垂直发射管,其性能将(至少)超过美国"洛杉矶"级3型或俄罗斯"阿库拉"级2型等攻击型核潜艇。 不过,也有网上消息称,095型攻击核潜艇的第二批次已在去年底或今年初投入建造。之前,有美国媒体表示,095攻击核潜艇的项目早在2010年已启动,计划交付海军的日期在2020年。 中国095型攻击核潜具有垂直发射功能。网络图片 谈及外界最关注中国核潜艇哪些性能时,知名军事专家尹卓近日在央视节目中指出,一是静音效果。如果新型核潜艇在静音效果方面获得突破,就很难被对方潜艇发现。降低潜艇噪声,能大大增强潜艇对航母的攻击能力。二是对陆攻击能力。如果新型核潜艇可携带对陆攻击巡航导弹,对手将很难防范其发动的攻击。 那么,攻击核潜艇主要承担什么军事任务?内地军事专家曹卫东表示,攻击型核潜艇担负任务较多,包括侦察监视、反潜、对陆攻击,以及护卫战略导弹核潜艇等任务,攻击核潜艇可大幅提升海军近海防御、远海护卫能力。 解放军潜艇官兵演练水下攻击。资料图片 美国海军情报局在2009年的报告就对中国095型攻击潜艇做了分析称,095攻击核潜艇,北约代号"隋"级,是093b的替代者,预测噪音在100分贝以下,有着比093更安静的静音,美军的分析认为,其比俄罗斯最新型的潜艇静音不差,而之所以能够达到这种水平,是因为中国曾在白俄罗斯采购了数套精密声呐电报通讯系统。 可作水下网络通信平台 内地网站上的资料分析称,095攻击核潜艇可以携带大量的巡航导弹,中国现役的"鹰击62"重型反舰导弹、"长缨3"(cy3)反潜导弹以及垂直发射的"东海10"(dh10)对陆巡航导弹,而且,有分析认为,095还可配备hy4巡航导弹,该导弹传可以携带核弹头。鉴于此,有媒体一度将该潜艇称为核巡航导弹潜艇。 让095攻击核潜艇的作战能力大升的还有一个因素,就是该潜艇具有水下网络功能,改善了的主被动传感器,可以与水面和水下其他无人通讯平台对接。舆论分析认为,低于100分贝静音隐身、配备大量的巡航导弹、具备先进的水下网络通讯功能,095攻击核潜艇成为不折不扣的水面大型舰只的杀手。 华二代核潜装自然循环反应堆 据新浪网报道:中国科学技术部主办的"中国科技奖励网"近日发布文章称,中国第二代核潜艇包括新型鱼雷攻击型核潜艇(093型及后续改进型)和战略导弹核潜艇(094型以及后续改进型)均使用了具备自然循环能力的艇用核反应堆。 中国潜艇官兵绘制航线。资料图片 潜艇核动力装置的自然循环能力是衡量其安全可靠性能的重要标志之一,所以各国都在竭尽全力提高自然循环能力,也就是指不用冷却剂泵推动,仅靠冷却水的自流就能带走核反应堆堆芯热量的能力。而反应堆的冷却剂泵又正好是核潜艇发出噪声的主要来源之一,因此,一旦实现了核反应堆自然循环,不仅保证了潜艇的安全性,即使停电也能保障核潜艇能正常运作,而且使潜艇在不开启冷却剂泵的情况下也能向推送装置输出能量,极大地降低了潜艇的噪声。 中国的第一代核潜艇在噪音的控制上就不太尽如人意,现在已经逐渐退役,第二代核潜艇以及近年来其后续改进型的小批量入役,让中国海军的水下威慑力提升了一个台阶。 除了在艇用反应堆上的改进外,文章还透露了海军第二代核潜艇的诸多信息: 一、1994年下半年,中央军委和中央专委作出重大决定:将新型鱼雷攻击型核潜艇和战略导弹核潜艇列入"国家专项",至此,第二代核潜艇研制工程终于全面展开。 二、2002年开始,新型核潜艇研制工作正式进入施工阶段。 三、2006年冬,党和国家领导人来到新型核潜艇交付现场,为中国第一艘即将服役的新型核潜艇授军旗。 四、在水下潜射导弹上,一代艇只能单发,二代艇实现了连发。 五、实现了复杂武器系统网络化,发明了新型减振器、消声瓦,保障了潜艇优良的空气,实现了鱼雷大深度发射,完成了从一个目标到同时跟踪多个目标的转变... 作为中国第一种具备自然循环能力的艇用反应堆,在设计和技术水平上与国际先进水平相比尚有不足。随着新一代也就是第三代核潜艇即将建造,相信具备更强自然循环能力的核反应堆一定被运用上去。 渤船重工厂房规模庞大。网络图片 096型或同时开工 美国媒体指出,最新曝光的渤船重工的全新的厂房规模庞大,还可以建造下一代的096型弹道导弹核潜艇。 渤船重工是中国唯一的核潜艇制造商,出自其工厂的核潜艇包括091型和093型攻击核潜艇,以及092型和094型弹道导弹核潜艇。去年8月,渤船重工官方首次对外证实,该公司已经安装新型总装生产线,在当时就被认为是用于开建最新型号核潜艇。如今,又有新型总装生产线室内船台车间内部画面对外披露,外界分析认为,相关信息显示095096两型核潜艇或将可同时建造。 据报道,这个车间无论是跨度及宽度都相当广大,称得上是"世界之最",可满足同时建造5-6艘核潜艇的要求。加上该船厂的另外其他两条生产线,这样就使该厂形成了3条生产线的能力,这意味其能同时开建4艘核潜艇,能在3年内建造10至12艘核潜艇。 据称,每条生产线一半用于组装潜艇模块,另一半用来在最后给船体安装消声瓦等降噪设备。这里的空间足够同时建造四艘攻击核潜艇(一边组装两套模块,同时为两套已组装好的船体做出厂前的调试)。这些工作完成后,攻击核潜艇就可下线入水。 网上文章透露,096型潜艇是为中国海军开发的弹道导弹核潜艇,目前中国官方仍未公开它的性能参数。据推测,096型在艇体设计上更加类似于西方弹道导弹核潜艇。值得注意的是,中国同时研制射程可达1.2万公里的巨浪-3型潜射导弹,两者搭配将对美国造成巨大威胁。 据报道,中国核潜艇建造与航母相同,皆采用分段式模块建造,除了此次曝光的总装车间外,厂房内还有耐压分段制造车间。 新浪军事的文章分析认为,按照目前速度建造,中国海军在2020年前后,将使服役的核潜艇数量翻一番,并将成为与美国部署在太平洋方向的水下核舰队相匹敌的现代化核潜艇力量。 美国科技网站日前的报道也曾指出,中国目前拥有3条核潜艇生产线,并且已有能力同时开建4艘,这意味着解放军可能在3年内建造10至12艘核潜艇,建设真正具有威慑力的"水下长城"。


中华民族屈辱的历史要从近代晚清说起,当时朝政腐败、软弱无能,沦为帝国主义的殖民地,八国联军的侵入北京,火烧圆明园,慈禧太后西逃,《辛丑条约》、《北京条约》、《马关条约》、《南京条约》割地赔款,其中最让我们痛心的就是南京条约将香港割让给英国,期限是99年,从此以后香港就成了大英帝国的殖民地,开始了百年的统治。 然而,本多人都会问,为什么是99年,而不是100年,就差这一年就满一个世纪,究竟有何深意?其实这租借99年是根据当时的国际环境列强们商定出来的,虽然当时清政府已经腐败不堪,但是毕竟瘦死的骆驼比马大,自然不能小觑。想要对中国进行瓜分还达不到这个程度,只能是租借。 根据国际惯例,国外土地的所有权的归属有两种,一种是永久使用,另一种就是在有限的期限内使用,根据当时的国际背景和清政府的现况,列强将使用期限规定在99年,因为如果再多一年的话就变成永久占领,那就是对中国的瓜分,但是列强还不足以对中国进行瓜分,只能退而求其次选择租借,也是租借最长的期限。 我是小海,欢迎大家一起来评论、点赞、关注!


鱼腥草别名侧耳根、猪鼻孔等,鱼腥草草生长于沟边、溪边及潮湿的疏林下,分布中国长江流域以南各省,夏季茎叶茂盛花穗多时采收,洗净,阴干用或鲜用, 凉拌鱼腥草是民间的一道传统佳肴。鱼腥草入药具有清热解毒、消痈排脓、利尿通淋的作用,在我国传统医学中具有较为广泛的应用。 其人工栽培技术要点有: 一、 繁殖: 大面积种植: 鱼腥草有白茎和红茎两种,红茎鱼腥草香味更浓。一般宜于冬季将其粗壮的地下茎挖起作为种苗,并将其埋入松土下越冬,待翌年春季萌芽后,再挖起并截成小段(每段具2-3个节),然后进行栽种。 二、、选地整地:鱼腥草喜湿忌旱,除可利用边角地或荒地外,更宜选择排灌方便的旱地或水田种植。整地前先经犁耙,施入有机肥做底肥,栽前将1500-2500公斤腐熟有机肥加适量草木灰(每亩)施入种植沟内作基肥,并与泥土充分拌匀,再覆上3厘米厚的碎泥,待腐熟后(以免烂根),再翻整一次,并开成1·3-1·5米宽的低畦,再横向挖好15厘米宽、20厘米深的种植沟,沟间距约25厘米。 也可选肥沃疏松、排灌方便、背风向阳的沙质壤土或富含有机质的土壤栽培。深翻松土后起畦,畦宽1.5-1.6米,畦高30厘米,沟底宽20厘米。每亩施农家土杂肥3000-4000公斤作基肥,按株行距14×20厘米开浅沟或挖穴定植,种植后浇水,保持土壤湿润。 三、栽种管理: "清明"前后栽种。每隔6-8厘米放一根种苗,随即盖上6-7厘米厚的碎泥,幼苗期遇干旱,应早晚浇水,湿润畦土。幼苗成活至封行前,中耕除草和追肥2-3次,肥料以人粪尿或化肥等氮肥为主,注意保湿防旱。在基肥充足的情况下,一般可不必再追肥。株高10厘米以上时,要及时培土,使地下茎长而白嫩。每次除草结合追肥,每亩施人粪尿1000-1500公斤或尿素15-25公斤,先稀后浓施用。每年收割后追施氮肥为主,以促进植株萌发;第二次则施磷钾肥为主,并培土以利越冬,为来年萌芽打好基础。日常管理的关键是保持土壤湿润,切勿受旱,否则,须根多、品质差。前期注意除草,封行后不用除草。此外,在刚现花蕾时,宜及早摘除,并结合进行一次摘心,以抑制其徒长。鱼腥草病虫害极少,偶见根腐病,可用稀托布津溶液浇蔸。 四、采收:3-5月采割较幼嫩的鱼腥草供食用。若以药用为主,种植当年只可采收1次,可在9-10月采收,第二年可收割两次,第一次在6月,第二次在9-10月。若是加工制作饮料,可根据生产工艺要求,用镰刀平地割下全草,洗净晒干,即可收藏备用。 五、留种: 采挖时,可留下细小的地下茎末梢,在地里让其自然萌芽。也可选取粗壮的地下茎假植,供种用。若当年不采挖,要除去地上部分的茎叶以免冻坏,也有利蓄足营养,翌年再加培育后采收出售。 盆栽栽培技术 1.繁殖 盆栽: 鱼腥草的繁殖方法采用分株,插枝和根茎繁殖均可。分株繁殖在3月下旬至4月,将母株挖出分株移栽于沙土的苗床上育苗或直接移植均可。插枝繁殖可在春、夏季,剪取无病虫健壮枝条作插穗,截成长12--15厘米,插扦于花盆中,行株距16cm×10cm或14cm×10cm。插后浇水,遮荫,生根后移苗定植。根茎繁殖,可在2~3月进行,选择无病斑、白色、粗壮的根茎,截成具有2个腋芽以上的小段,在花盆中开浅沟育苗或定植。冬季和早春应注意防冻保温,夏季和初秋应注意遮阳保湿。 2.栽种方法 种植鱼腥草应选择有自然遮阴(半阴半阳)、盆土疏松肥沃条件下栽培。一年四季均可种植,但冬季、春季和夏初栽种当年可收,一般播种的最佳时期在立春前后。在花盆中朝同一方向开沟条栽,沟深8~10cm,宽13~15cm,行距20~25cm。在沟中摆放鱼腥草种根,每沟平行摆两行,种茎段间距为5~8cm,连续摆放,头尾相连。种茎要摆放均匀,然后覆土,种植后要保温保湿。如果在夏季高温季节种植,一定要有3个节,以保证中间的节位能够发芽生根。如在冬前种植,还应起加盖地膜或盖报纸,以利冬天和初春正常生长发育,获得高产 。 3.日常管理 在定植后,幼苗期遇干旱,应早晚浇水,湿润畦土。幼苗成活至封行前,中耕除草和追肥 2--3次,肥料以氮肥为主。每次除草结合追肥,每平方米可施尿素20~30克,先稀后浓施用。每次收割后追施氮肥为主,以促进植株萌发;进入秋季采收后则以施磷钾肥为主,并培土以利越冬,为来年萌芽打好基础。干旱季节应适时浇灌水,雨季应及时排水,忌花盆中长时间积水。杂草应及时清除,适时进行浅中耕松土,结合松土在株行距间撒施适量腐熟的有机肥料。对地上茎叶生长过旺的植株,要进行摘心,抑制长高,促进发生侧枝。 4.采收 鱼腥草定植后,苗高8-10厘米时就可以开始采摘嫩茎叶,以后每隔10-20天采收一次。采摘的嫩茎叶可以趁鲜上市,也可以晒干后上市。地下茎在定植半年以后,即可根据市场需要适时采挖,洗净后除去杂质,趁鲜上市或用于淹渍加工。留作种用的地下茎可随用随采。鱼腥草全草可供药用,随时可采收,洗净后晒干贮藏。 凉拌鱼腥草: 首先准备好材料:鱼腥草、盐、醋、蒜泥、糖、花椒油、香油、酱油、辣椒等,可根据自己的口味来准备。 将鱼腥草的老根、须掐去,留下嫩白根及叶片,用清水多洗几遍,洗净去泥沙,用盐水浸泡几分钟,捞出控干水分待用;也可以用开水焯一下。 加入少量醋、加入蒜泥、放些糖、花椒油、香油、酱油等调味 将干辣椒切成段,放到温油中炸至酥脆,发出香味,连同油一块冷却倒入鱼腥草里凉拌,也可以直接拌。(凉拌材料的放入顺序可以自行变动的,最重要味道要拌匀。) 注意副作用:鱼腥草毒性甚小,口服后有鱼腥臭味,肌注时局部可出现疼痛; 对阴道粘膜有一定的刺激性。 鱼腥草注射液可引起过敏反应,表现有药物性皮炎、末梢神经炎、过敏性紫癜等。 严重者可引起过敏性休克,乃至死亡,应引起足够的重视。 了解更多详情请关注: 本文来源 :整理互联网 图片来源于互联网综合 版权声明:本文已注明来源,版权属原作者所有。若涉及版权,请及时联系我们。


合作、交流-小学数学课堂必不缺失的习惯 "好习惯成就好人生"这是重要的教育理念,小学是一个人学习的起始阶段,是基础教育中的基础。这一阶段学习质量的好坏,对孩子的一生有着无法估量的影响,一旦学生养成了良好的学习习惯,好的学习方法就内化于其中。所以在教学过程中我们要注重培养学生良好的学习习惯。 在课改的当今社会,课堂教学特别提倡"合作与交流",所以"合作、交流"是小学数学课堂教学中不可缺失的习惯培养。那么,我们应该怎样做呢?下面是我的一点浅显的体会。 一. 培养学生在数学课堂学习中养成合作学习的习惯 鼓励班内的每一名学生能在合作前独立思考数学问题,在小组的合作学习中要培养交流与倾听的能力,在每一次合作学习后要用自己的话表达合作学习的收获并不断的反思。在合作学习中要将个体间的差异当作一种学习资源,在合作学习中达到集思广益、取长补短、共同进步、协同发展的目的。 1.在小组学习和全班探究中将个人的学习活动与集体活动融为一体,互相配合,协调一致。 2.在合作学习的过程中主动的与同学沟通交流,要尊重别人的意见和观点。在数学的合作学习中培养每一个学生大胆表达自己看法,和合作伙伴共同解决问题。 3.在数学课堂学习中鼓励每一个学生主动和同学交流与老师合作,在合作学习中要勇于承担组内的学习任务不推拖学习任务。 二、在合作学习中培养学生善于交流的学习习惯 培养学生在合作学习中善于倾听他人的见解的习惯,养成认真倾听、分析、思考的习惯,在数学课堂的学习中要鼓励学生善于交流,勇于发表自己的意见和看法的习惯,要注意使自己在表达自己的看法时流利,条理清晰。与人交流时,虚心听取对方的见解,善于倾听他人的意见和建议,不随便打断别人的谈话。养成认真倾听、分析、思考的习惯。积极踊跃发言,敢于提出自己的不同见解,并不断修正、弥补自己的不足。说话完整,口齿清晰,声音洪亮,仪态端庄。 合作交流是学生学习数学的重要方式,学生合作交流的能力、习惯,需要教师长时间的耐心培养。教师在教学过程中要提供给学生合作交流的机会,促使他们不断地自由参与、自主学习,让数学课堂充满生机。


原文地址:robot、baid spider - 百度蜘蛛、如何查看作者:俘虏个性 robot英文直译是机器人,在搜索引擎优化seo中,我们经常翻译为:探测器。 有时,你会碰到crawler(爬行器),spider(蜘蛛),都是探测器之一,只是叫法不同。 seo中常说的这个探测器(robot)是什么? 搜索引擎用来抓取网页的工具。它是一个软件或者说一系列自动程序(显然,不是一部机器)。 不同的搜索引擎给他们自己的探测器(robot)起不同的名字。 谷歌:googlebot 百度:baid spider msn:msnbot yahoo:sl rp (yahoo家的这位比较特殊,没有带"姓",并且用的是一个拟声词。sl rp,中文理解是机器人吃东西时发出的啧啧的声音) 关于robot,需要关心的主要是robots.txt,以及网站日志中包含的以上几个名字。 - robots 是一个属性标签,一般都是书写在meta标签上面。它也有多个属性标签。比如:noindex,nofollow,nosnippet,noarchive,noodp 等等属性。 书写办法, mate name="robots" content="noindex,nofollow" 其中,noindex告诉蜘蛛不要索引本页 nofollow告诉蜘蛛不要跟踪本页上面的链接 nosnippet告诉搜索引擎不要在搜索结果上面显示说明文字。 noarchive告诉搜索引擎不要显示快照 noodp告诉搜索引擎不要使用开放目录中的标题说明。  baid spider - 百度蜘蛛: 百度是如何收录到那么多网页的呢?这个百度用以抓取互联网上数以亿计的网页的程序,就叫做baid spider - 百度蜘蛛。 它是一个程序,夜以继日得在互联网上找寻新的url,接着抓取url上的内容,返回到百度的网页暂存数据库。 百度用来抓取网页内容的程序,叫做baid spider,抓取其他内容的蜘蛛,则是新的名字: 产品名称 对应 ser-agent 网页搜索 baid spider 无线搜索 baid spider-mobile 图片搜索 baid spider-image 视频搜索 baid spider-video 新闻搜索 baid spider-news 百度搜藏 baid spider-favo 百度联盟 baid spider-cpro 不少朋友会在自己的网站日志里看到这个蜘蛛baid spider-cpro,现在我们明白它是百度联盟蜘蛛,用以百度联盟程序匹配相应的广告。 那么,其他搜索引擎的蜘蛛是什么? 如何查看百度蜘蛛抓网页情况? 百度用于抓取网页的程序叫做baid spider - 百度蜘蛛,我们查看网站被百度抓取的情况主要是分析,网站日志里百度蜘蛛baid spider的活跃性:抓取频率,返回的http状态码。 查看日志的方式: 通过ftp,在网站根目录找到一个日志文件,文件名一般包含log,下载解压里面的记事本,这即是网站的日志,记录了网站被访问和操作的情况。 因为各个服务器和主机的情况不同,不同的主机日志功能记录的内容不同,有的甚至没有日志功能。 日志内容如下:  - - [11jan2009:04:02:45 +0800] "get bbsthread-7303-1-1l http1.1" 200 8450 "-" "baid spider+(+ .comsearchspider)" 分析: get bbsthread-7303-1-1l 代表,抓取bbsthread-7303-1-1l 这个页面。 200 代表成功抓取。 8450 代表抓取了8450个字节。 如果你的日志里格式不是如此,则代表日志格式设置不同。 很多日志里可以看到 200 0 0和200 0 64 则都代表正常抓取。 抓取频率是通过查看每日的日志里百度蜘蛛抓取次数来获知。抓取频率并没有一个规范的时间表或频率数字,我们一般通过多日的日志对比来判断。当然,我们希望百度蜘蛛每日抓取的次数越多越好。  格式如: user-agent: * disallow: searchl disallow: index.php? disallow: tempweb 说明: user-agent: * 星号说明,允许所有的搜索引擎来收录,包括百度、google、yahoo等。 disallow: searchl 说明不允许收录 searchl 这个文件。 disallow: index.php? 说明不允许收录以index.php?为前缀的链接如: index.php?122l、index.php?=12、index.php?baid 等等 disallow: tempweb 说明不允许收录tempweb里的所有文件。但可以收录如:tempwebtaiml 的链接。 我不喜欢我网站的后台登陆地址被搜索引擎收录,同时也不希望放在robots.txt里被其他人知道。我怎么来 屏蔽呢? 你可以在后台登陆地址的首页里,添加noindex标签。详细说明了解这里:  使用meta标签拦截或删除网页:在网页的 head 部分添加适当的 meta 标签。 拦截所有搜索引擎把网页收录: meta name="robots" content="noindex, nofollow" 只是拦截百度蜘蛛爬取网页,而允许其他搜索引擎收录: meta name="baid spider" content="noindex, nofollow" 允许搜索引擎收录你的网页,但禁止其追踪外部链接( 为了防止链接泛滥采用了此例): meta name="robots" content="nofollow" 允许搜索引擎收录你的网页,但禁止其收录网页上的图片: meta name="robots" content="noimageindex" 注:哪一个网页需要拦截或删除,则在那个网页添加meta 标签,其他页面不会受影响。meta 标签针对的是具体的某个网页,而不是整个网站。


高考365天倒计时! 2020年6月9号下午,高二年级举行"距高考一周年"主题班会,各班精心组织,以多种形式对"准高三"学子们进行思想动员,此次班会激发了同学们的斗志,为2021年高考备战吹响了号角! 校长亲临班会现场做动员讲话 b tong 教师代表励志发言 b tong b tong b tong b tong b tong 老师们的谆谆教导是同学们前进的最大动力! 优秀学生经验分享 b tong b tong b tong b tong 通用小标题 b tong b tong b tong b tong b tong 榜样的经验分享是为同学们指引方向 互动环节 青春在这一刻绽放出光彩 家长寄语 家长的支持是我们最强的后盾! 此次主题 班会,气氛热烈,取得了很好的激励效果,愿这次班会后,同学们能够对即将来临的高三有新的认识,扬帆起航,全力以赴! 很多人说:"高一时,很新鲜,忙着适应;高二没好好学,忙着玩儿;高三知道学了,想学,可是来不及了。"千金难买后悔药,高二下学期是过渡到高三的关键期,也是最难把握的一个时期,我们必须正确地认识这一时期的重要性。 1.分水岭 众所周知,高二下学期是成绩分化的分水岭,成绩两极分化严重,从高二开始,同学之间的差距开始逐渐拉开。高一成绩很好的同学可能高二成绩并不理想,而有些同学却能成为黑马。因此称之为分水岭并不为过。 2.转变期 在初中获取知识主要是从教师那里被动接受。到了高一,这种情况虽然有所改变,但对老师的依赖还是比较重。直到高二尤其是下学期,学生的学习自觉性增强,获取知识一方面从教师那里接受,但这种接受也应该有别于以前的被动接受,它是在经过自己思考、理解的基础上接受。另一方面通过自学主动获取知识。能否顺利实现转变,是成绩能否突破的关键。 3.过渡期 高二下学期学业加重,自己的梦想逐渐清晰,正是为高三紧张忙碌的复习工作打下基础的最佳时段。高三的主要任务是复习,所有的新课在高二的时候基本上已经结束,因此,高二的学习质量直接影响到高三的复习质量,也就直接影响到高考的成绩,其中的重要性不言而喻。 4.突破期 这个阶段其实不仅是形成核心竞争力的时段,更是拉开差距的时候。其实拉开差距有两种方式:巩固基础和钻研难题。在这里巩固基础就不用多提了,这是所有学生都会去做的事情。但是对于钻研难题这一方面,很多学生都会避而不谈甚至会直接忽略难题。所以难题就是拉开差距的主要因素,这个时期正是攻破难点的关键期,尤其是对薄弱学科的突破。 在这个特殊的时期里,高二年级组提醒各位同学与家长,在即将进入高三的关键期做好以下几点: 生物钟要及时调整,临到高考前再调整就来不及了。所以高三学生的作息时间最好与高考同步,要把自己学习的兴奋点逐步调整到白天。尤其是上午 9 点到 11 点,下午 3 点到 5 点这段时间里,可以安排强度比较大的做题训练。 身体是革命的本钱,一定要加强锻炼,储备充足体能,每年高考前,都有一些考生因生病坚持不到最后,即使有顽强的毅力,带病坚持到了最后,效果也不好。所以大家要在高考备战生活中要格外注意养成合理的膳食营养及饮食卫生习惯,坚持体育锻炼,增强体质。 高三的学习是艰苦的,学生一般都会有较大压力,新高三生要利用这段时间做好心理调整。 首先,要做好温故知新的心理准备。很多学科在授新课的同时,将进入复习阶段,有些学生重视新知识的学习,认为复习旧知识不重要,使得高三一开始就忙得焦头烂额。所以,新高三生要做好温故知新的心理准备。 其次,要做好打持久战的心理准备。刚上高三,所有的学生都会下决心拼一把,但是,有的同学只有三分钟热度,苦了、累了就开始懒惰、懈怠,这样会影响学习效果。只有坚持到最后的才是强者。 新高三生要给自己制定一个明确、具体、恰当的目标。比如在一模前要将数学成绩提高 20 分,二模前要背诵 200 篇古诗词等。这份计划可能是宏观的,但是一定要考虑到每个学科的特点,合理安排。 高校录取分数线公布后,新高三生要客观地评估自己高中两年的学习情况,在年级中成绩排名,充分了解自己每学科的最大提升空间,制定相对具体、合理的目标。否则,进入高三后,在各种测试中若经常出师不利,容易挫败自信心,导致最后的冲劲不足。当然,目标也不能定得太低,因为动力不足,潜能得不到最大限度地发挥。 面对着即将到来的高考备战生活,高三新生和他们的父母无论在物质上还是心理上都积极地做着准备,家长与学生一起共同备战。 在饮食方面,高三学生体力和脑力消耗都较大,因此营养要跟上。家长要为孩子安排好营养餐。多关注孩子心理健康,在孩子遇到困难的时候,主动关心孩子。营造温馨、愉悦的家庭环境,为孩子备考做好后盾。 新高三生应该针对高三学习的特点,修正学习方法和策略。 高三的学习一定要抓基础,并把知识网络化、系统化,在此基础上学以致用,应用到实际生活中。因为现在的高考正由知识型向能力型转化。有的同学喜欢陷入题海战术,觉得自己做题越多越好,却忽视了最基本的课本知识。高考所考查的是学生对知识的整体把握和驾驭,所以有牢固的知识基础是非常必要的。对于高三学生来说,从现在开始就应该扎扎实实打牢基础,第一步就应从巩固课本知识做起。 高三起始阶段是知识积累的阶段,倘若这时候不努力积累,后面几乎是很难再有大的突破的。除了积累,到了高三你还应该学会及时归类。高三学习,基本上是对原有知识的强化、深化、拓展和应用的训练,第二学期更是如此,前期复习知识归类越有序,应用起来就会越顺手,解题的速度越快,准确度越高。归类、积累必不可少,分析总结对高三学生来说也是不可缺少的。 新高三生要高度重视知识的积累,独立完成对学科知识网络的构建,从知识的接受者转变成知识的梳理者,把自己所学的知识尽可能全部梳理一次,从中发现自己的薄弱点,有针对性地查漏补缺,强化自己的知识储备。比如,梳理语文的文言文、古诗词,英语的词汇、语法,数理化的公式、定理等。梳理这些知识要以课本为主,适当参考其他资料。 青春誓词 今日出征多壮志,明朝题名写春秋! 在距离高考一周年的日子里 我们郑重宣誓: 珍惜 365 天,用分秒创造奇迹! 努力 365 天,让梦想张开翅膀! 坚持 365 天,铸奋斗无悔青春! 2021 届考生,努力!加油!必胜!


我 的 阳 新 行 2018年7月12日至13日,我们一行4人到阳新县老年大学、湖北省老年大学进行了为期2天的学习和观摩,就如何规范老年大学的教学及老年大学的校园文化布置等问题进行了深入的调查和学习,结合沙洋县老年大学的办学方案,现将学习心得总结如下: 一、阳新县老年大学如何抓好教学规范管理的经验。 1、 关于生源保证的问题。 阳新县老年大学位于阳新新区,环境优雅,布局规范,自2017.9开班以来很受社会认可,短时间内报名人数就达到了760多人,特别是那些热门学科,已经爆满。 阳新县是一个人口大县,其城区长期居住人口达到39万之多,由于其地理环境优雅,大多数离退休老同志都不愿意离开县城,其城市规划的宜居性也引起了附近城乡居民的城市化,其城区人口一直呈增加状态。 全新的阳新县老年大学作为阳新新区的一座标志性建筑早已深入民生。在开班筹建期间,阳新县委老干部局及时召开了全县离退休党支部书记专题会议,就老年大学各项工作的顺利推进做出了具体安排,特别是在招生宣传上做出了硬性规定,要求其赋闲在家的离退休老同志必须报名,这样就使得老干部活动中心在生源上得到了很大的保障。 2、阳新县老年大学在规范教育教学管理环节的经验。 在深入学习和交流中我们发现阳新县老年大学的实际教学中就像抓九年制义务教育一样规范其教学的每一个环节和步骤。一是严格筛选每一位一线教学教师,要求其个人素质优良、奉献意识强烈、教学风格新颖、组织能力严谨。正式因为拥有了这样一批高素质的教师队伍,才使得老年大学的教学口碑得以在全县相传,吸引了一大批想学也愿意学习的老年朋友的目光。二是在实际教学管理中,阳新县老年大学的管理工作人员采取严格跟班、进班制,这样既可以及时现场纠正和解决课堂中的一些纰漏,杜绝了个性问题的扩大化,规范和监督了教师的教学流程,还协助了教学一线教师的班级教育管理工作,保障了教师在班级里的权威性。 在课程开办上,阳新县老年大学一直坚持不盲目增设新课程,认真办好、办精每一个正在开设的课程。还要求每一位一线教学教师在学期初就必须向学校提供完善、科学的、成体系的教学学制计划和内容,并及时向学员们进行宣传和公示,这样就使得学员在选课方面一清二楚,避免了教学资源的冲突性浪费,保证了实际教学中的正常教学秩序。 3、阳新县老年大学在分层教学的经验。 在分层次教学问题上,阳新县老年大学采取入门、初级、中级等形式进行区分,所有学员严格按照学期结束时的成绩进行分班,同一门学科由同一位教师进行分层式因材施教,这样的教学方式使得分层教学管理更加科学化,也保证的每一位学员成绩的有序提高。 二、关于校园文化建设的问题。 阳新县老年大学是一所全新设计园林式老年大学,其外置文化以红色教育为主题,配以适当的图片文字,让人耳目一新。室内文化布置一部分以老年政策宣传、阳新新风貌为主题,一部分以教学成果展示为主题,一部分以教师风采和学员新貌为主题,一部分以阳新县国家级非物质文化遗产为主题。通过分散和集中展示的方式,对老年大学进行立体和直观的展示,既展现了风貌也传承了文化。 通过对阳新县老年大学的参观学习,我个人就沙洋县老年大学规范和科学发展提出以下几点不成熟意见: 1、继续大力开展正面宣传,通过各种政策宣传让社会人士进一步了解和认可老年大学的办学宗旨,以各种进社区活动等形式立体的展示老年大学学员的风采,展示老年大学的教学魅力,让学员们变被动为主动,并以此来感染其他离退休同志,传递社会正能量。 我们先期已经通过向城区中小学学生派发老年大学形象宣传单,开展"小手拉大手"对赋闲在家里的老同志们做了细致宣传,然后又通过送节目进社区、进单位对老年大学的学员风貌做了集体展示,还组织安排了部分老年大学优秀教师进小区开展书法、普通话、国学等科目的共建活动,让社会人士知道、了解和逐步认识和接受"活到老学到老"老年生活理念。 我们和部分优秀教师深入社区宣传和调研,并邀请各社区领导到老年大学实际参观、共同探讨,以实际生活案例讲解规范和强化老年教育在"共创和谐社会"层面的重要意义,各社区领导从思想上也进一步理解了"老必须有所学"的重要性,并在各社区里开展了轰轰烈烈宣传活动。 我们组织了严谨的"三评学员"活动,初步确认了候选三评学员名单,打算通过班级认可、家庭通过、社区签定、学校认定、社会公示无疑义的过程再次进行严格筛选,力求通过正面宣传优秀老同志事迹来达到弘扬社会正能量的目的。 2、规范实际教学、办好每一门专业课程。 我们将借鉴阳新县老年大学的实际办学经验,也将采取"跟班、进班"的形式加强教学常规管理,强调班级管理和教学管理在实际过程管理中的重要性,指导和规范教师的教学行为。在课程设计上必须保证"政治养老"在先,合理优化、组合一批实际操作不太方便、不适合本土风土人情的学科,增设学员们急切需要的学科,比如普通话推广课程、烹饪课程等,从多个方面来满足老年人学习形式上的多样化、精细化。 大力推行上大课,逐步形成常态化。通过"夕阳红课堂"、"道德讲堂""传统文化推广"等形式在学员中进行分批次的集体讲座,发扬老年红色教育的优势,要求老年人不仅要带头遵守社会公德,还必须把这份责任心带进家庭,严格教育子女,共创社会和谐新局面! 3、引进科学的老年分层教学模式。 要充分研究老年教育的各个环节,保障每一位老年同志的学习效果,安抚好老年同志学习的心理状态,在保证每位学员的学业稳定、逐步提高的前提下做好分班分层教学和学业结业工作。 4、迅速启动校园文化建设和结束其他学科建设工程的刹尾工作。 通过这次的学习,使得我更一步清晰了以后的办学思维,我们将借鉴兄弟单位先进、科学的管理模式,结合我们沙洋县老年大学的实际情况做出合理化的调整,力争让沙洋县老年大学的管理更上一个新台阶,工作成绩上创一个新辉煌!


针对二滩电厂6kv系统电压互感器自投产以来频繁损坏的现象,简要阐述电磁谐振产生的原因、危害及防范措施,同时也提出针对此类故障应从哪些方面入手的意见,希望能对一些单位有所借鉴。 在6~35 kv的中性点非有效接地系统中,由于变压器、电压互感器、消弧线圈等设备铁心电感的磁路饱和作用,激发产生持续的较高幅值的铁磁谐振过电压。铁磁谐振可以是基波谐振、高次谐波谐振、分次谐波谐振。这种谐振产生的过电压的幅值虽然不高,但因过电压频率往往远低于额定频率,铁心处于高度饱和状态,其表现形式可能是相对地电压升高,励磁电流过大,或以低频摆动,引起绝缘闪络、避雷器炸裂、高值零序电压分量产生、虚幻接地现象出现和不正确的接地指示。严重时还可能诱发保护误动作或在电压互感器中出现过电流引起pt烧坏。 1 故障现象及相关数据 6kv系统共有八段,采用的是上海华通开关厂生产的电气组合柜,该厂设备自投产以来,主部件未发生大的缺陷,但其辅助测量pt发生了8台次损坏,现象表现为本体炸裂、内部绝缘物质喷出故障,致使6 kv系统的相关保护不能投运,部分自动功能无法实现。这给厂用系统的安全稳定运行带来了极大的隐患。 2 故障原因初探 根据故障现象,经过初步判断,估计是由于下述的几个原因所致。 1) 产品质量不好:如果由于产品本身绝缘、铁心叠片及绕制工艺不过关等,均可能致使电压互感器发热过量使绝缘长期处于高温下运行,从而导致绝缘加速老化,出现击穿。该类型的电压互感器一次侧绕组发生匝间短路,这样电流会迅速增大,铁磁也将迅速饱和从而导致谐振过电压,使绝缘击穿,高压熔断器被熔断。 2) 电压互感器二次负荷偏重,一、二次电流较大,使二次侧负载电流的总和超过额定值,造成pt内部绕组发热增加,尤其是在电压高于pt额定电压(6kv)情况下,pt内部发热更加严重;再者,该系统属于中性点非有效接地系统,故一次侧电压在运行中容易发生偏斜,当某相出现高电压时,该相pt更加容易发生热膨胀损坏。 表1故障统计 编号 电压互感器型号 现象 备注 601 vki7.2 c相损坏,引起匝间短路 更换为jdzx8-6型电压互感器后,投运不到两天时间,又发生b相损坏,引起匝间短路 603 vki7.2 a相损坏,引起匝间短路 604 vki7.2 a相损坏,引起匝间短路 606 vki7.2 a、c相损坏,引起匝间短路 607 vki7.2 a、c相损坏,引起匝间短路 主要技术参数:变比600根号3100根号31003,额定容量90100va,上海互感器厂 注:1) vki 7.2型电压互感器为引进型,国内相应的产品型号为jdzx8-6;6kvⅰ段至ⅷ段各有一组(3台)变比为6000310031003的互感器。2) 工艺为树脂浇注式半绝缘,一次中性点的耐受为3kv(出厂值)。 3) 由于铁磁谐振而造成电压互感器被击穿,因为:被击穿的电压互感器所处的母线带的负荷呈感性的比较多,特别是ⅲ、ⅳ段,带有大容量的深井泵,在负荷分配上其感抗大于容抗,由于某种原因,而使系统电压波动(如深井泵频繁启停等),使电路中电流和电压发生突变,可能导致电压互感器铁心迅速饱和、感抗减小,当感抗小于容抗时,将产生铁磁谐振,导致电压互感器激磁电流增大几十倍,而过电压幅值将达到近2.5ue,甚至于达到3.5ue以上,而且持续时间较长,电压互感器在这样大电压、大电流下运行,使本身的温度也迅速升高,导致损坏。 根据上述的分析,为此组织qc小组对其原因进行分析,同时派人外出调研,调研结果表明:(1)应不存在产品质量问题,原因是该互感器在华东地区广泛采用,从收集的资料上看,该厂产品的业绩是良好的,虽然在某些地方也曾出现过一些问题,但象二滩电厂这样大量的损坏是没有的。(2)怀疑电压互感器二次负荷偏重导致pt损坏的理由也不成立,原因是该pt 0.5级二次绕组额定容量为90 va,在1998年11月16日,测量了604pt二次侧星形接线负荷,在二次接线回路上施加100v的三相交流电源(停用备自投),测得ia=0.61 a,ib=1.05 a, ic=0.605 a,测得星形接线负荷容量:sa=35.2 va,sb=60.6 va,sc=35va,pt总输出容量为105.6 va;次日,测量601pt二次侧星形接线负荷,在二次接线回路上施加100v的三相交流电源(停用备自投,有一块电度表未装),测得ia=0.4 a, ib=0.7 a,ic=0.4 a,测得星形接线负荷容量: sa=23.09va,sb=40.04 va,sc=23.09 va,pt总输出容量为69.28 va。通过实际测量结果分析,除604pt有一相超出额定值外,其余均在额定值范围内,同时,按照pt的容量为一个数列,一般50 va就能满足使用,所以说90 va的容量应该是足够大的。因此,二滩大量的pt损坏原因应该为电磁谐振所致。 3 铁磁谐振的几个特点 1) 对于铁磁谐振电路,在相同的电源电势作用下回路可能不只一种稳定的工作状态。电路到底稳定在哪种工作状态要看外界冲击引起的过渡过程的情况。 2) pt的非线性铁磁特性是产生铁磁谐振的根本原因,但铁磁元件的饱和效应本身也限制了过电压的幅值。此外回路损耗也使谐振过电压受到阻尼和限制。当回路电阻大于一定的数值时,就不会出现强烈的铁磁谐振过电压。 3) 串联谐振电路来说,产生铁磁谐振过电压的的必要条件是ω0=1l0cω。因此铁磁谐振可在很大的范围内发生。 4) 维持谐振振荡和抵偿回路电阻损耗的能量均由工频电源供给。为使工频能量转化为其它谐振频率的能量,其转化过程必须是周期性且有节律的,即...12(1,2,3...)倍频率的谐振。 5) 铁磁谐振对pt的损坏。电磁谐振(分频)一般应具备如下三个条件。 ① 铁磁式电压互感器(pt)的非线性效应是产生铁磁谐振的主要原因。 ② pt感抗为容抗的100倍以内,即参数匹配在谐振范围。 ③ 要有激发条件,如pt突然合闸、单相接地突然消失、外界对系统的干扰或系统操作产生的过电压等。 据试验分频谐振的电流为正常电流的240倍以上,工频谐振电流为正常电流的40~60倍左右,高频谐振电流更小。在这些谐振中,分频谐振的破坏最大,如果pt的绝缘良好,工频和高频一般不会危及设备的安全,而6 kv系统存在上述条件。 4 铁磁谐振的常用消除办法 根据以上分析配电系统铁磁谐振的特性,就不难找到加以解决的办法。通常的解决办法有: 1) pt一次的中性点加装阻尼电阻。该方法在已广泛采用,生产定型产品的厂家比较多,在实际运用中都取得了满意的效果。如西安电瓷厂生产的rxq系列消谐器,该消谐器串接于pt一次绕组中性点与地之间,内部材料为大容量的非线性碳化硅电阻片及散热片等串联组装于瓷套内而成。其工作原理为:在低压下消谐器呈高电阻值(可达几百千欧)使谐振在起始阶段不易发展,单相接地时,消谐器上出现千余伏电压,它的非线性电阻下降,使其不影响接地保护的工作。 2) 在pt开口三角侧并联固定(或可变)阻尼,一些要求不太高的变电所或配电。


原文地址:进程和线程管理(转)作者:csaintfrom: 5.1.1 进程概念 20世纪60年代,进程(process)一词首先在麻省理工学院的multics和ibm的ctss360系统中被引入。 对进程下个准确定义不容易,一般的我们认为进程是一个程序的一次执行过程。进程是申请系统资源的基本的单位,它具有的两个重要特性。 1. 独立性 进程是系统中独立存在的实体,它可以拥有自己独立的资源,比如文件和设备描述符等。 在没有经过进程本身允许的情况下,其他进程不能访问到这些资源。这一点上和线程有很大的不同。 线程是共享资源的程序实体,创建一个线程所花费的系统开销要比创建一个进程小得多。 2. 动态性 进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。 在进程中加入了时间的概念。进程具有自己的生命周期和各种不同的状态,这些概念在程序中都是不具备的。 由于以上两个性质,又可以衍生出进程的第三个重要特性,即并发性。 若干个进程可以在单处理机状态上并发执行。注意并发性(conc rrency)和多处理机并行(parallel)是两个不同的概念。 并行指在同一时刻内,有多条指令在多个处理机上同时执行; 而并发指在同一时刻内可能只有一条指令执行,但多个进程的指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。 5.1.2 进程的结构 作为申请系统资源的基本单位,进程必须有一个对应的物理内存空间。 而对这样的一块空间,首先要用数据结构进行描述,才能进一步对之进行管理。 进程运行的环境称为进程上下文(context)。 lin x中进程的上下文由进程控制块pcb(process control block)、代码段(text segment)、数据段(data segment)以及用户堆栈(stack)组成。 其中: 代码段存放该进程的可执行代码; 数据段存放进程中静态产生的数据结构; pcb包括进程的编号、状态、优先级以及正文段和数据段中数据分布的大概情况。 lin x中的pcb块又称为task_str ct结构,task_str ct 数据结构十分巨大、复杂(在2.4版本内核中,每个task_str ct占1680个字节),但它可以按功能分为以下几类信息: 1)state、2)sched ling information、3)identifiers、 4)inter-process comm nication、5)links、6)times and timers、7)file system、8)virt al memory 、9)processor specific context 。 图 5-1 进程的数据结构 在lin x中,进程以进程号pid(process id)作为标识。系统每次访问一个进程时,内核根据pid在进程表中查找相应的进程pcb块(具体查找过程通过一个pid的hash表实现),再通过pcb块找到其对应的代码段与数据段,并进行操作。 5.1.3 进程状态 进程是-个动态的实体,故而它是有生命的。 从创建到消亡,是一个进程的整个生命周期。 在这个周期中,进程可能会经历各种不同的状态。 一般来说,所有进程都要经历以下3种状态。  就绪(ready)态: 指进程已经获得所有所需的其他资源,并正在申请处理机资源,准备开始运行。 这种情况下,称进程处于就绪态。  阻塞(blocked)态: 指进程因为需要等待所需资源而放弃处理机,或者进程本不拥有处理机,且其他资源也没有满足,从而即使得到处理机资源也不能开始运行。 这种情况下,称进程处于阻塞态。阻塞状态又称休眠状态或者等待状态。  运行态: 进程得到了处理机,并不需要等待其他任何资源,正在执行的状态,称之为运行态。 只有在运行态时,进程才可以使用所申请到的资源。 在lin x系统中,将各种状态进行了重新组织,由此得出lin x进程的几个状态(如图5-2所示): 图 5-2 lin x 进程状态转换  running: 正在运行,或者在就绪队列中等待运行的进程。 也就是上面提到的运行态和就绪态进程的综合。 一个进程处于running状态,并不代表它一定在被执行。 由于在多任务系统中,各个就绪进程需要并发执行,所以在某个特定时刻,这些处于running状态的进程之中,只有一个能够得到处理机,而其他进程必须在一个就绪队列中等待。 即使是在多处理机的系统中,lin x也只能同时让一个处理机执行任务。  uninterruptable: 不可中断阻塞状态。 处于这种状态的进程正在等待队列中,当资源有效时,可由操作系统进行唤醒,否则,将一直处于等待状态。  interruptable: 可中断阻塞状态。 与不可中断阻塞状态一样,处于这种状态的进程也在等待队列中,当资源有效时,可以由操作系统进行唤醒。 与不可中断阻塞状态有所不同的是,处于此状态中的进程亦可被其他进程的信号唤醒。  stopped: 挂起状态。 进程被暂停,需要通过其他进程的信号才能被唤醒。 导致这种状态的原因有两种。 其一是受到了相关信号(sigstop、sigstp、sigttin 或sigttou)的反应; 其二是受到父进程ptrace调用的控制,而暂时将处理机交给控制进程。  zombie: 僵尸状态。 表示进程结束但尚未消亡的一种状态。 此时进程已经结束运行并释放大部分资源,但尚未释放进程控制块。 5.2 进程的管理 5.2.1 进程调度 调度程序(sched ler)用来实现进程状态之间的转换。 在lin x中,调度程序由系统调用sched le来完成。 sched le是一个怪异的函数,它与一般c语言函数不同,因为它的调用和返回不在同一个进程中。 用户进程由fork系统调用实现。 fork创建一个新的进程,继承父进程的现有资源,初始化进程时钟、信号、时间等数据。 完成子进程初始化后,父进程将它挂到就绪队列,返回子进程的pid。 进程创建时的状态为uninterruptible,在fork结束前被父进程唤醒后,变为running。 处于running状态的进程被移到就绪队列中,在适当时候由sched le按处理机调度算法选中,获得处理机。 获得处理机而正在运行的进程若申请不到某个资源,则调用sleep进行休眠,其pcb挂到相应的等待队列,状态变为 uninterruptible或者 interruptible。 sleep将调用sched le函数把休眠进程释放的处理机分配给就绪队列中的某个进程. 状态为interruptible的休眠进程当它申请的资源有效时被唤醒,也可以由信号或定时中断唤醒。 而状态为uninterruptible的休眠进程只有当它申请的资源有效时被唤醒,不能被信号和定时中断唤醒。 唤醒后,进程状态改为running,并进入就绪队列。 进程执行系统调用exit或收到外部的杀死进程信号sig_kill时,进程状态变为zombie,释放所申请资源。 同时启动sched le把处理机分配给就绪队列中其他进程。 若进程通过系统调用设置了跟踪标志位,则在系统调用返回前,进入跟踪状态,进程状态变为stopped,处理机分配给就绪队列中其他进程。 只有通过其他进程发送sig_kill信号或继续信号sig_cont,才能把stopped进程唤醒。重新进入就绪队列。 对每一个进程,其pcb块中都可以记录一种调度策略。 进程调度算法可采用先进先出算法(fifo)或轮转法(ro nd-robin),有实时(这里的"实时",只是一种说法)。 实际上,未经改造的lin x很难实现"实时")和非实时两种形式。 若采用lin x的轮转法,当时间片到时(10ms的整数倍),由时钟中断触发,引起新一轮调度,把当前进程挂到就绪队列队尾。 在sched le中有一个goodness函数,可以用来保证实时的进程可以得到优先调用。 然而这只是在调用上优先,事实上在内核态下,实时进程并不能对普通进程进行抢占。 所以在标准lin x中的实时并不是真正意义上的实时 5.2.2 信号 1. lin x系统信号 信号主要用于通知进程异步事件的发生。在lin x中可以识别29种不同的信号,这些信号中的大部分都有了预先定义好的意义, 进程可以显式的用kill或killpg系统调用来向另一个进程发信号。 进程可以通过提供信号处理函数来取代对于任意信号的缺省反应,这种缺省反应一般都是终止进程。 信号发生时,内核中断当前的进程,进程执行处理函数来响应信号,结束后恢复正常的进程处理。 信号有自己的名称和特定的编号,见表5-3所示。 5-3 lin x 系统信号 2. 信号的产生条件 (1) 用户在按下特定的键之后,将向该终端上 的前台进程组发送信号,如ctrl+c快捷键。 (2) 硬件异常会产生信号:如被0除、无效内存引用等。 (3) kill(2)系统调用可允许进程向其他进程或进程组发送任意信号。 (4) kill(1)命令允许用户向进程发送任意信号。 (5) 软件设置的条件,如sigalarm。 信号发生时并不会立即得到处理,lin x在如下几种情况下才有可能处理进程的信号: 每次进程从系统调用中退出时; 内核在调度程序中选择执行该进程时。 如果有任何一个未被阻塞的信号发出,内核就根据sigaction结构数组中的信息进行处理。 3. 信号控制基本函数 (1) 捕捉信号 此函数是信号处理程序或者信号捕捉函数。 它可以决定系统对信号的响应。 void (*signal (int signo,void (*f nc)(int(int) 其中signo是表1-1中的信号名; f nc的值是sig_ign或sig_dfl或者是接到此信号后需要调用的函数地址。 当f nc为sig_ign时则向内核表示忽略此信号; 当f nc为sig_dfl时表示接到此信号的动作是系统默认动作(一般是终止或忽略); 当f nc为函数地址时为捕捉信号。出错则返回sig_err,成功返回信号处理配置。 (2) 发送信号 ① kill和raise int kill(pid_t pid,int sig);向其他进程发送信号 int raise(int sig);向当前进程发送信号 其中kill的参数pid0是将信号发送到pid为pid的进程; p0将信号发送到与发送进程处于同一进程组的进程; pid-1将信号发送到进程组id等于-pid的所有进程; p-1 posix未指定,lin x发送到进程表中所有的进程(除第一个进程之外)。 sig=0时,不会发送任何信号,但仍然执行错误检查,因此可用来检查是否有向指定进程发送信号的许可。 raise等价于kill(getpid,sig)即发信号到当前进程。成功返回为0,出错为-1。 ② alarm nsigned int alarm( nsigned int seconds); 这个函数可以用来设置一个时间值(闹钟时间),当所设置的值被超过以后,产生sigalrm信号,默认动作是终止进程。 seconds指定了设置的时间值,过了这个秒数就会发出sigalrm信号。 每个进程只有一个闹钟时间。 如果在本次调用alarm以前曾经设置过闹钟时间,而且没有超时,则本次函数的返回就是以前的余留值,并且以前的闹钟值被新的设定刷新。 ③ pa se int pa se(void); 可以使进程挂起,直到捕捉到一个信号。执行了一个信号处理函数后pa se函数返回,错误返回-1,errno设为eintr。 ④ sleep nsigned int sleep( nsigned int seconds); 此函数挂起调用中的进程,直到过了预定时间或者是收到一个信号并从信号处理程序返回。 可以由alarm函数实现。 seconds表明设定的时间值,超过此值后恢复进程; 当超时返回时,返回值是0, 当由于捕捉到某个信号而提早返回时,返回值是seconds减去已经过去的秒数。 例:程序执行2秒打印hello字符串 #incl de  nistd.h #incl de signal.h void handler{ printf("hellon"); } main { int i; signal(sigalrm,handler); alarm(2); for(i=1;i4;i){ printf("sleep %d n",i); sleep(1); } } 执行结果: sleep 1 sleep 2 hello sleep 3 5.3 进程运行和控制 lin x中除了0号进程是启动时由系统创建,其余进程都是由其他进程自行创建的。 为了表示这种创建关系,用父进程指代缔造者,用子进程指代被创建出的新进程。 如果进程a是进程b的间接父进程,则a称做b的祖先,b为a的后代。 既然提到了父子关系,那么这两个进程之间自然是有着如同父子一样的继承性。 在数据结构上,父进程pcb中的指针p_cptr指向最近创建的一个子进程的pcb块,而每个子进程pcb中的指针p_pptr都指向其父进程的pcb块。 这一对指针构成了进程的父子关系,如图5-4所示。 图 5-4 父子进程关系 此外,除了最老的子进程外,每个子进程pcb块中的p_osptr 指针都指向其父进程创建的上一个子进程pcb; 反之,除了最新的子进程外,每个子进程pcb块中的p_ysptr都指向其父进程所创建的后一个子进程pcb。 这样,同一个父亲的子进程们就按"年龄"顺序构成了一个双向链表,而父进程则可以通过其p_cptr指针,从最新创建的子进程开始,依次访问到其每一个子进程。 系统启动时,自行创建了0号进程,其所运行的代码是init_task函数。 该进程的作用是作为一切其他进程的父进程,就像亚当夏娃是一切人类的祖先那样。 0号进程不能自动生成,必须手工将其设置到进程表中去,才能启动进程管理机制。 在启动进程管理机制以后,就可以由进程自行创建新的子进程。 创建新进程的调用是fork。fork一词在英文中是"分叉"的意思。 同样,在lin x中,fork调用也起了一个"分叉"的作用。 当进程a调用fork生成进程b时,fork函数同时在a和b两个进程中返回。 其中,父进程a里的fork返回了子进程的pid,而子进程b里的fork返回0。 fork函数究竟做了些什么呢? 我们发现,经过fork以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。 在早期,在调用系统调用fork创建一个进程时,子进程完全复制父进程的资源,这样得到的子进程独立于父进程。但是通过fork创建子进程系统开销很大,需要将父进程的每种资源都复制一个副本,因此,fork是一个开销十分大的系统调用,这些开销并不是所有的情况下都是必须的,比如某进程fork出一个子进程后,其子进程仅仅是为了调用exec执行另一个执行文件,那么在fork过程中对于虚存空间的复制将是一个多余的过程; 有些系统为了克服fork调用的缺点,创建了vfork调用。用vfork创建的子进程与父进程共享地址空间,也就是说子进程完全运行在父进程的地址空间上,子进程对虚拟地址空间任何数据的修改同样为父进程所见。但是用vfork创建子进程后,父进程会被阻塞直到子进程调用exec或exit。这样的好处是在子进程被创建后仅仅是为了调用exec执行另一个程序时,因为它就不会对父进程的地址空间有任何引用,所以对地址空间的复制是多余的,通过vfork可以减少不必要的开销。 目前,由于采用copy-on-write技术,在调用fork时,子进程只复制了自己的pcb块,而代码段、数据段、用户堆栈内存空间并没有复制一份,而是与父进程共享 。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。这样就极大的提供fork的效率。 5.4 lin x进程控制编程 5.4.1 进程控制编程基础 (1)进程创建 lin x系统中用来创建新进程的方法是fork函数,它与其他函数有很大的区别,该函数执行一次有两返回值。 fork的语法要点 所需头文件 #incl de systypes.h #incl de  nistd.h 函数原型 pid_t fork(void) 返回值 0:子进程 子进程id(大于0的整数):父进程 -1:出错 fork使用示例 (2)exec函数族 一般在调用fork函数以后,可以用exec函数族来启动另一个程序的执行。exec函数族可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完后,原调用进程的内容除了进程号外,其他的全部被新的进程替换了。 exec函数族语法 所需头文件 #incl de nistd.h 函数原型 int execl(const char *path, const char *arg, ... ); int execv(const char *path, char *const argv[]); int execle(const char *path, const char *arg, ... ,char *const envp[]); int execve(const char *path, char *const argv[], char *const envp[]); int execlp(const char *file, const char *arg, ... ); int execvp(const char *file, char *const argv[]); 返回值:如果出错则返回-1,否则不返回。 示例: #incl de  nistd.h #incl de stdio.h #incl de stdlib.h int main { if(fork==0){ if(execlp("ps","ps","-ef",null)0) perror("execlp error!"); } } (3)exit和_exit exit和_exit函数都可以用来终止一个进程。区别是:_exit立即进入内核,exit则先执行一些清除处理(包括调用执行各终止处理程序,关闭所有标准io流等),然后进入内核。 所需头文件: exit:#incl destdlib.h _exit: #incl de nistd.h 函数原型: exit: void exit(int stat s) _exit: void _exit(int stat s) 示例: 1)使用exit: #incl de stdio.h #incl de stdlib.h int main { printf("using exit...n"); printf("this is the content in b ffer"); exit(0); } 该程序的输出为: using exit... this is the content in b ffer 2)使用_exit: #incl de stdio.h #incl de  nistd.h int main { printf("using _exit...n"); printf("this is the content in b ffer"); _exit(0); } 该程序的输出为: using _exit... (4)wait和waitpid函数 #incl desystypes.h #incl desyswait.h pid_t wait (int * stat s); wait会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数stat s返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数stat s可以设成null。子进程的结束状态值请参考waitpid。 如果执行成功则返回子进程识别码(pid),如果有错误发生则返回-1。失败原因存于errno中。 pid_t waitpid(pid_t pid,int * stat s,int options); waitpid会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数stat s返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数stat s可以设成null。参数pid为欲等待的子进程识别码,其他数值意义如下: pid-1 等待进程组识别码为pid绝对值的任何子进程。 p-1 等待任何子进程,相当于wait。 p0 等待进程组识别码与目前进程相同的任何子进程。 pid0 等待任何子进程识别码为pid的子进程。 waitpid使用示例 本例中首先使用fork新建一个子进程,然后让子进程暂停5秒。接下来对父进程使用waitpid函数,并使用参数wnohang使该父进程不会阻塞。父进程每隔一秒循环判断一次,如果子进程没有退出,则显示相关消息,如果子进程退出了,则程序结束。 程序源代码(waitpid.c) 该程序的运行结果为: the child process has not exited the child process has not exited the child process has not exited the child process has not exited the child process has not exited get child 75 如果把"pr=waitpid(pc,null,wnohang)"改为"pr=waitpid(pc,null,0)"或者"pr=wait(null)",则运行结构为: get child 76 5.4.2 lin x守护进程编程 守护进程(daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程通常是在系统引导时启动,在系统关闭时终止。lin x系统有很多守护进程,大多数服务都是用守护进程实现的。比如,作业规划进程crond、打印进程lqd等。守护进程可以lin x系统启动时从启动脚本etcrc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。 进程组和会话期 进程组 每个进程除了有一进程id之外,还属于一个进程组(在讨论信号时就会涉及进程组)进程组是一个或多个进程的集合。每个进程有一个唯一的进程组id。进程组id类似于进程id-它是一个正整数,并可存放在pid_t数据类型中。可以调用getpgrp查看当前进程的进程组id。 每个进程组有一个组长进程。组长进程的标识是其进程组id等于其进程id,进程组组长可以创建一个进程组,创建该组中的进程,然后终止,只 要在某个进程组中有一个进程存在,则该进程组就存在,这与其组长进程是否终止无关。从进程组创建开始到其中最后一个进程离开为止的时间区间称为进程组的生命 期。某个进程组中的最后一个进程可以终止,也可以参加另一进程组。 会话期 会话期(session)是一个或多个进程组的集合。 一个会话期可以有一个单独的控制终端(controlling terminal),这一般是我们在其上登录的终端设备(终端登录)或伪终端设备(网络登录),但这个控制终端并不是必需的。 建立与控制终端连接的会话期首进程,被称之为控制进程(contronlling process)。 一个会话期中的几个进程组可被分为 一个前台进程组(foregro nd process gro p)以及一个或几个后台进程组(backgro nd process gro p) 如果一个会话期有一个控制终端,则它有一个前台进程组,其他进程组为后台进程组。无论何时键入中断键(常常是delete或ctrl-c)或退出键(通常是ctrl-),就会造成将中断信号或退出信号送至前台进程组的所有进程。 守护进程的编写规则 守护进程比较复杂,但是只要掌握其编写的一般流程,我们也可以很方便的编写自己的守护进程。 编写守护进程一般的步骤如下所述: 1)创建子进程,父进程退出 为避免挂起控制终端,要将daemon放入后台执行,其方法是,在进程中调用fork使父进程终止,让daemon在子进程中后台执行。具体就是调用f o r k ,然后使父进程e x i t 。 pfork; if(pid0) { exit(0); } 2)在子进程中创建新的会话期 这是创建守护进程中最重要的一步,需要使用setsid这个函数。 setsid函数的语法 所需头文件: #incl desystypes.h #incl de nistd.h 函数原型: pid_t setsid(void) 返回值: 成功:该进程组id 错误:-1 setsid调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离,由于会话过程对控制终端的独占性,进程同时与控制终端脱离。 3)改变当前目录为根目录 从父进程继承过来的当前工作目录可能在一个可卸载的文件系统中。因为守护进程通常在系统再引导之前是一直存在的,所以如果精灵进程的当前工作目录在一个可卸载文件系统中,那么该文件系统就不能被拆卸,这样可能会出现某些不便。所以一般在守护经常中把当前工作目录更改为根目录,这样就可以避免上述问题。改变工作目录可以使用chdir函数。 #incl de nistd.h int chdir(const char *path) 返回值:成功:0; 不成功:-1; 4)重设文件权限掩码 文件权限掩码是只屏蔽掉文件权限中对应位。由继承得来的文件方式创建屏蔽字可能会拒绝设置某些许可权。例如,若精灵进程要创建一个组可读、写的文件,而继承的文件方式创建屏蔽字,屏蔽了这两种许可权,则所要求的组可读、写就不能起作用。 因此我们一般把文件权限掩码设置为0,这样就可以读写所有文件。设置文件权限掩码的函数是 mask; #incl desystypes.h #incl desysstat.h mode_t mask(mode_t mask) 返回值:这个函数总是执行成功并返回执行前的文件权限掩码。 5)关闭打开的文件描述符 进程从创建它的父进程那里继承了打开的文件描述符。如不关闭,将会浪费系统资源,造成进程所在地文件系统无法卸下以及无法预料的错误。一般来 说,必要的是关闭0、1、2三个文件描述符,即标准输入、标准输出、标准错误。因为我们一般希望守护进程自己有一套信息输出、输入的体系,而不是把所有的 东西都发送到终端屏幕上。调用fclose; 守护进程编程示例 本例首先创建一个守护进程,然后让守护进程每隔10s在tmpdameon.log中写入一句话; 守护进程示例源代码(dameon.c) 守护进程的出错处理 守护进程不属于任何终端,所以当需要输出某些信息时,它无法像一般程序那样将信息直接输出到标准输 出和标准错误输出中。我们很大时候也不希望每个守护进程将它自己的出错消息写到一个单独的文件中。因为对于系统管理人员而言,要记住哪一个守护进程写到哪 一个记录文件中,并定期的检查这些文件,他一定会为此感到头疼的。所以,我们需要有一个集中的守护进程出错记录机制。目前很多系统都引入了syslog记 录进程来实现这一目的。 syslog是lin x系统中的系统日志管理服务,通常由守护进程syslogd来维护。此守护进程在启动时读一个配置文件。一般来说,其文件名为etcsyslog.conf,该文 件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上显示,而警告消息则可记录到一个文件中。该机制提供了 syslog函数,其调用格式如下 #incl de syslog.h void openlog (char*ident,int option ,int facility); void syslog(int priority,char*format..) void closelog; 调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也 是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。调用openlog 使我们可以指定一个ident,以后, 此ident 将被加至 每则记录消息中。ident 一般是程序的名称(例如 ,cron ,inetd 等)。 option 有4种可能: log_cons 若日志消息不能通过unix域数据报发送至syslog,则将该消息写至控制台。 log_ndelay1 立即打开unix域数据报套接口至syslog守护进程,而不要等到记录第一消息。通常,在记录第一条消息之前,该套接口不打开。 log_perror 除将日志消息发送给syslog 外,还将它至标准出错。此选项仅由4.3bsdreno及以后版本支持。 log_pid 每条消息都包含进程id。此选项可供对每个请求都fork一个子进程的守护进程使用。 acility facility参数用来指定何种程式在记录讯息,这可让设定档来设定何种讯息如何处理。 log_auth : 安全授权讯息(别用这个,请改用log_authpriv) log_authpriv : 安全授权讯息 log_cron : 时间守护进程专用(cron及at) log_daemon : 其它系统守护进程 log_kern : 核心讯息 log_local0到log_local7 : 保留 log_lpr : line printer次系统 log_mail : mail次系统 log_news : usenet news次系统 log_syslog : syslogd内部所产生的讯息 log_user(defa lt) : 一般使用者等级讯息 log_uucp : uucp次系统 在 syslog(int priority,char*format..)中: priotity 决定讯息的重要性. 以下的等级重要性逐次递减: log_emerg : 系统无法使用 log_alert : 必须要立即采取反应行动 log_crit : 重要状况发生 log_err : 错误状况发生 log_warning : 警告状况发生 log_notice : 一般状况,但也是重要状况 log_info : 资讯讯息 log_debug : 除错讯 format 以字符川指针的形式表示的输出格式。 syslog使用示例 本例中对上例程序使用syslog服务进行重写,其源代码为syslog_dema.c 5.5 进程通讯 5.5.1 进程间通信 用户态进程间处于并发状态。 为了协调进程的运行,需要实现进程之间通信的机制。 lin x下的进程通信手段基本上是从unix 平台上的进程通信手段继承而来的。而对unix发展做出重大贡献的两大主力at&t的贝尔实验室及bsd(加州大学伯克利分校的伯克利软件发布中 心)在进程间通信方面的侧重点有所不同。前者对unix早期的进程间通信手段进行了系统的改进和扩充,形成了"system v ipc",通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。lin x则把两者继承了下来,如图 示: 在lin x中,常见的进程间通信方法包括: 1).管道机制。 该机制最适用于解决生产者--消费者问题。 管道是一种在进程之间单向流动数据的结构,具有固定的读端fd[0]和写端fd[1]。 管道只能用在具有亲缘关系的进程之间通信。 管道可以看成特殊文件,我们可以用read write等普通函数对其进行操作,但是它只存在于内存中。 管道的创建和关闭 创建函数: int pipe(int fd[2]) 关闭:关闭管道只需要使用close函数关闭其打开的文件描述符即可。 管道读写需要注意的问题 管道在写入时不会保证写入操作的原子性。 虽然通过pipe调用会产生两个描述符(写管道和读管道),但是在写之前必须关闭读管道,反之亦然。 管道使用示例: 本例中,首先创建管道,之后创建一个子进程,然后关闭父进程的读描述符和子进程的写描述符,建立他们之间的管道通信。 源代码(pipe_rw.c) 2). 先进先出(fifo)机制。 管道机制的最大缺点是不能由多个进程共享,除非此管道为这些进程共同的祖先所创建。 为了解决这个问题,lin x中引入了fifo机制(又称为named pipe,有名管道)。 fifo为"first in,first o t"的简写,指一个在磁盘上的文件,它可以被所有进程所共享。 但是fifo与一般文件不同,它还使用了内核中的缓冲区,所以在效率上要比一般共享文件快得多。 mkfifo函数(创建有名管道) 所需头文件: #incl desystypes.h #incl desysstat.h 函数原型: int mkfifo(const char * pathname,mode_t mode); mkfifo会依参数pathname建立特殊的fifo文件,该文件必须不存在,而参数mode为该文件的权限。 返回值:成功 0;出错 -1,错误原因保存在errno中 管道创建成功后就可以使用open、read、write等函数进行操作。需要注意的一点是fifo的读写是可以阻塞的(在open函数中可设定非阻塞标志o_nonblock)。如果fifo是阻塞打开,对于读进程,若fifo中没有数据可读,则读进程会被阻塞;对于写进程,则写进程会被阻塞直到有读进程读出数据。 使用示例 本例中包含两个程序,一个用于读管道(fifo_write.c),一个用户写管道(fifo_read.c),两个程序都是使用非阻塞方式读写管道。 3. ipc机制。 ipc是"inter process comm nication"的缩写形式。 它包含了一系列系统调用,允许用户态进程通过信号量进行同步,向其他进程发消息,并且可以与其他进程共享一块内存空间. ipc首先是在一个叫做"col mb s unix"的系统中实现的,其后在现代unix类操作系统中广为流行。 如上文所述,ipc资源包括信号量,消息队列和共享内存几种。 (1) 消息队列 消息队列是由内核创建并维护的一个数据结构,它是有标识的。 任何具有足够权限的进程都可以向消息队列中放置一个消息,同样,任何具有足够权限的进程都可以从中读取一个消息。 这样,不同的进程通过访问相同的消息队列便可实现进程间通信。 (2) 共享内存 共享内存区是这几种进程间通信方式中最快的一种。 它的特点除了速度快外,而且可传递的信息量大。 它是通过将一段内存区映射到一个进程的地址空间来实现。 因此,这种进程间通信就不再涉及到内核(即进程不是通过执行任何进入内核的系统调用来传递数据的。 这样,内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理该内存区)。 但同时,也要有效地保证它能同步、有序且没有死锁。 用共享内存实现过程如下: ① 服务器取得访问该共享内存区的权限。 ② 服务器从输入文件读取数据到该共享内存区。 ③ 服务器读入数据完毕时,通知用户进程。 ④ 用户从该共享内存区读出这些数据并输出。 (3) 信号量 信号量并不是一种ipc机制,它是用于提供不同进程间或一给定进程的不同线程间同步的一种手段。 信号量主要包括以下几种类型: ① 二值信号量:其值为0或1。资源被锁住而不可用时,值为0;资源可用时,值为1。 ② 计数信号量:其值在0和某个限制值之间。它的值一般是可用的资源数。 ③ 计数信号量集:由一个或多个信号量构成的一个集合,其中每一个都是计数信号量。每个集合的信号量数都有一个限制值,一般在25个以上。 以计数信号量为例,在有信号量机制的程序中,一个进程为了获得共享资源,需要执行以下操作: 测试控制该资源的信号量,若此信号量的值为正,则进程可以使用该资源。 进程将信号量值减1,表示它使用了一个资源;若此信号量的值为0,则进入睡眠状态,直至信号量的值大于0为止;若进入1状态,则进程被唤醒。 进程不再使用该资源时,信号量的值就加1。如果这时有进程处在睡眠状态,则唤醒它。 一个ipc资源将永久地驻留在内存中,除非进程显式地释放它。 并且,ipc资源不仅能被其创建进程的后代所共享,任何进程都可以共享它。 5.6 线程概念及分类 5.6.1 线程特点 多线程的概念是首先在unix中引入的,lin x也继承这一点。 发展到现在多线程已经成为lin x编程中不可或缺的一种机制。 线程和进程相比有以下优点: 1."节俭"的多任务操作方式 在lin x系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。 而运行一个进程中的多个线程,它们彼此之间使用相同的地址空间、共享大部分数据、启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。 2. 线程间方便的通信机制 对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。 线程则不然,由于同一进程下的线程之间共享数据空间,它们不仅共享全局变量,而且共享进程指令、大多数数据、打开的文件(如描述字)、信号处理程序和信号处置、当前工作目录、用户id和组id。 所以一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。 3. 提高应用程序响应 这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作, 而使用多线程技术,将耗时长的操作置于一个新的线程,这样可以避免这种尴尬的情况。 4. 使多cpu系统更加有效 操作系统会保证当线程数不大于cpu数目时,不同的线程运行于不同的cpu上。 5. 改善程序结构 一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。 6. 数据共享问题 有的变量不能同时被两个线程所修改,有的子程序中声明为静态的数据更有可能给多线程程序带来灾难性的打击,带来了同步问题,这些正是编写多线程程序时最需要注意的地方。 5.6.2 线程的基本概念 线程是包含在进程中的一种实体. 它有自己的运行线索,可以完成一定的任务,可与其他线程共享进程中的共享变量及部分环境、相互之间协同来完成进程所要完成的任务。 线程能够比进程有更高的性能,这是由于同一个进程中的线程都有共性:多个线程将共享同一个进程虚拟空间。 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户id与进程组id。 进程拥有这许多共性的同时,还拥有自己的个性。 有了这些个性,线程才能实现并发性。这些个性包括: 1. 线程id 每个线程都有自己的线程id,这个id在本进程中是唯一的。进程用此来标识线程。 2. 寄存器组的值 由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便将来该线程在被重新切换到时能得以恢复。 3. 线程的堆栈 堆栈是保证线程独立运行所必须的。 线程函数可以调用函数,而被调用函数中又是可以层层嵌套的,所以线程必须拥有自己的函数堆栈,使得函数调用可以正常执行,不受其他线程的影响。 4. 错误返回码 由于同一个进程中有很多个线程在同时运行,可能某个线程进行系统调用后设置了errno值,而在该线程还没有处理这个错误,另外一个线程就在此时被调度器投入运行,这样错误值就有可能被修改。 所以,不同的线程应该拥有自己的错误返回码变量。 5. 线程的信号屏蔽码 由于每个线程所感兴趣的信号不同,所以线程的信号屏蔽码应该由线程自己管理。 但所有的线程都共享同样的信号处理器。 6. 线程的优先级 由于线程需要像进程那样能够被调度,那么就必须要有可供调度使用的参数,这个参数就是线程的优先级。 5.6.3 线程的分类 从调度的角度,线程可以分为用户线程和内核线程两类: 1.用户线程 用户线程是通过线程库实现的。它们可以在没有内核参与下创建、释放和管理。线程库提供了同步和调度的方法。这样进程可以使用大量的线程而不消耗内核资源,而且省去大量的系统开销。用户线程的实现是可能的,因为用户线程的上下文可以在没有内核干预的情况下保存和恢复。每个用户线程都可以有自己的用户堆栈,一块用来保存用户级寄存器上下文以及如信号屏蔽等状态信息的内存区。库通过保存当前线程的堆栈和寄存器内容载入新调度线程的那些内容来实现用户线程之间的调度和上下文切换。 2.内核线程 它的创建和撤消是由内核的内部需求来决定的,用来负责执行一个指定的函数,一个内核线程不需要和一个用户进程联系起来。它共享内核的正文段核全局数据,具有自己的内核堆栈。它能够单独的被调度并且使用标准的内核同步机制,可以被单独的分配到一个处理器上运行。内核线程的调度由于不需要经过态的转换并进行地址空间的重新映射,因此在内核线程间做上下文切换比在进程间做上下文切换快得多。 5.7 线程编程基础 本节将结合实例说明多线程编程中所使用到的一些函数和基本方法。 5.7.1 线程的基本操作函数 以下先讲述4个基本线程函数,在调用它们前均要包括pthread.h头文件。 然后再给出用它们编写的一个程序例子。 1. 创建线程函数 int pthread_create(pthread_t *tid,const pthread_attr_t *attr, void *(*f nc)(void *),void *arg); 线程创建函数第一个参数为指向线程标识符的指针, 第二个参数用来设置线程属性 第三个参数是线程运行函数的起始地址 最后一个参数是运行函数的参数。 这里,我们的函数thread 不需要参数,所以最后一个参数设为空指针。 第二个参数我们也设为空指针,这样将生成默认属性的线程。 当创建线程成功时,函数返回0,若不为0 则说明创建线程失败,常见的错误返回代码为eagain 和einval 前者表示系统限制创建新的线程,例如线程数目过多了; 后者表示第二个参数代表的线程属性值非法。 创建线程成功后,新创建的线程则运行参数三和参数四确定的函数,原来的线程则继续运行下一行代码。 2. 等待线程的结束函数 int pthread_join(pthread_t tid,void **stat s); 第一个参数为被等待的线程标识符, 第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。 这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。 3. 取自己线程id函数: pthread_t pthread_self(void); 线程都有一个id以在给定的进程内标识自己。 线程id由pthread_creat返回,可以取得自己的线程id。 4. 终止线程函数 一个线程的结束有两种途径,一种是函数结束了,调用它的线程也就结束了; 另一种方式是通过函数pthread_exit 来实现。 它的函数原型为: void pthread_exit(void *stat s); 唯一的参数是函数的返回代码,只要pthread_join 中的第二个参数thread_ret rn 不是null,这个值将被传递给thread_ret rn。 最后要说明的是,一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join 的线程则返回错误代码esrch。 5.7.2 简单的多线程编程 lin x系统下的多线程遵循posix线程接口,称为pthread。 编写lin x下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。 顺便说一下,lin x下pthread 的实现是通过系统调用clone来实现的。 clone是lin x所特有的系统调用,它的使用方式类似fork,关于clone的详细情况,有兴趣的读者可以去查看有关文档说明。 下面展示一个最简单的多线程程序。 #incl destdio.h #incl depthread.h void thread(void) { int i; for(i=0;i3;i) printf("this is a pthread.n"); } int main(void) { pthread_t id; int i,ret; ret=pthread_create(&id,null,(void*)thread,null); if(ret!=0){ printf("create pthread error!n"); exit; } for(i=0;i3;i) printf("this is the main process.n"); pthread_join(id,null); ret rn(0); } 运行程序,得到如下结果: this is the main process。 this is a pthread。 this is the main process。 this is the main process. this is a pthread. this is a pthread。 再次运行,可能得到如下结果: this is a pthread. this is the main process. this is a pthread. this is the main process. this is a pthread. this is the main process. 前后两次结果不一样,这是两个线程争夺cpu资源的最终结果。 5.7.3 修改线程属性 属性结构为pthread_attr_t,它在头文件 srincl debits pthreadtypes.h中定义。属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省1m的堆栈、与父进程同样级别的优先级。 typedef str ct __pthread_attr_s { int __detachstate;是否分离 int __schedpolicy;调度策略 str ct __sched_param __schedparam;线程的 运行优先级 int __inheritsched;显式指定还是继承调度策略和调度参数 int __scope;表示线程间竞争cpu的范围,也就是说线程优 先级的有效范围 size_t __g ardsize; int __stackaddr_set; void *__stackaddr; size_t __stacksize; } pthread_attr_t; __detachstate,表示新线程是否与进程中其他线程脱离分离,如果置位则新线程不能用pthread_join来同步,且在退出时自行释放所占用的资源。缺省为pthread_create_joinable状态。这个属性也可以在线程创建并运行以后用pthread_detach来设置,而一旦设置为pthread_create_detach状态(不论是创建时设置还是运行时设置)则不能再恢复到pthread_create_joinable状态。该参数涉及函数: int pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate); int pthread_attr_getdetachstate (const pthread_attr_t *attr, int *detachstate); __detachstate可取值:pthread_create_joinable, pthread_create_detach。 __schedpolicy,表示新线程的调度策略,主要包括sched_other(正常、非实时)、sched_rr(实时、轮转法)和sched_fifo(实时、先入先出)三种,缺省为sched_other,后两种调度策略仅对超级用户有效。运行时可以用过pthread_setschedparam来改变。该参数涉及函数: int pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy); int pthread_attr_getschedpolicy (const pthread_attr_t *attr, int *policy); __schedparam,一个str ct sched_param结构,其中有一个sched_priority整型变量表示线程的运行优先级。这个参数仅当调度策略为实时(即sched_rr或sched_fifo)时才有效,并可以在运行时通过pthread_setschedparam函数来改变,缺省为0。该参数涉及函数: int pthread_attr_setschedparam (pthread_attr_t *attr, const str ct sched_param *param); int pthread_attr_getschedparam (const pthread_attr_t *attr, str ct sched_param *param); __inheritsched,有两种值可供选择:pthread_explicit_sched和pthread_inherit_sched,前者表示新线程使用显式指定调度策略和调度参数(即attr中的值),而后者表示继承调用者线程的值。缺省为pthread_explicit_sched。 int pthread_attr_setinheritsched (pthread_attr_t *attr, int inherit); int pthread_attr_getinheritsched (const pthread_attr_t *attr, int *inherit); __scope,表示线程间竞争cpu的范围,也就是说线程优先级的有效范围。posix的标准中定义了两个值:pthread_scope_system和pthread_scope_process,前者表示与系统中所有线程一起竞争cpu时间,后者表示仅与同进程中的线程竞争cpu。该参数涉及函数: int pthread_attr_setscope (pthread_attr_t *attr, int scope); int pthread_attr_getscope (const pthread_attr_t *attr, int *scope); pthread_attr_t结构中还有一些值,但不使用pthread_create来设置。 另外还有pthread_attr_init(pthread_attr_t *attr) ,该函数用来初始化线程属性;pthread_attr_destroy(pthread_attr_t *attr),该函数使线程属性无效。 属性设置示例 在本示例中(pthread.c)线程1设为分离属性,线程2使用默认属性(非分离)。该程序的运行结果如下: this is a pthread1. this is a pthread2. this is a pthread2. this is a pthread2. 5.7.4 线程访问控制 由于线程共享进程的资源和地址空间,因此在对这些资源进行操作时,必须考虑到线程间资源访问的唯一性。 在程序(threadrace.c)中,主线程和新线程都将全局变量 myglobal 加一 20 次。但是程序本身产生了某些意想不到的结果,最后输出的myglobal为20,而不是我们所预期的40; 在posix中线程同步的方法主要有互斥锁和信号量。 一、互斥锁 m tex是一种简单的加锁方法来控制对共享资源的存取。它只有两种状态:上锁和解锁。在同一时刻只能有一个线程掌握某个已经上锁的互斥锁,拥有上锁状态的线程能够对共享资源进行操作。若其他的线程希望上锁一个已经上锁了的互斥锁,则该线程会被挂起,直到上锁的线程释放互斥锁为止。 1. 创建和销毁 有两种方法创建互斥锁,静态方式和动态方式。posix定义了一个宏pthread_mutex_initializer来静态初始化互斥锁,方法如下: pthread_m tex_t m tex=pthread_mutex_initializer; 在lin xthreads实现中,pthread_m tex_t是一个结构,而pthread_mutex_initializer则是一个结构常量。 动态方式是采用pthread_m tex_init函数来初始化互斥锁,api定义如下: int pthread_m tex_init(pthread_m tex_t *m tex, const pthread_m texattr_t *m texattr) 其中m texattr用于指定互斥锁属性(见下),如果为null则使用缺省属性。 pthread_m tex_destroy用于注销一个互斥锁,api定义如下: int pthread_m tex_destroy(pthread_m tex_t *m tex) 销毁一个互斥锁即意味着释放它所占用的资源,且要求锁当前处于开放状态。由于在lin x中,互斥锁并不占用任何资源,因此lin xthreads中的pthread_m tex_destroy除了检查锁状态以外(锁定状态则返回ebusy)没有其他动作。 2. lin x pthread互斥属性有三种 pthread_mutex_initializer 快速互斥 pthread_recursive_mutex_initealizer_np 递归互斥 pthread_errorcheck_mutex_initializer_np 检错互斥 3. 锁操作 锁操作主要包括加锁pthread_m tex_lock、解锁pthread_m tex_ nlock和测试加锁pthread_m tex_trylock三个,不论哪种类型的锁,都不可能被两个不同的线程同时得到, 而必须等待解锁。 int pthread_m tex_lock(pthread_m tex_t *m tex) int pthread_m tex_ nlock(pthread_m tex_t *m tex) int pthread_m tex_trylock(pthread_m tex_t *m tex) pthread_m tex_trylock语义与pthread_m tex_lock类似,不同的是在锁已经被占据时 返回ebusy而不是挂起等待。 m tex使用示例 在前面的示例(threadrace.c)中,由于没有控制主线程和新线程对共享资源的访问,我们没有得到预期的结果。现在我们使用互斥锁机制来修改该程序,修改后的代码如(threadracem tex.c)所示,这样我们就可以得到预期的结果。 二、信号量(信号灯) 信号量本质上是一个非负的整数计数器,它可以用来控制对公共资源的访问,如果信号量的值大于0,则表示资源可用,否则表示资源不可用。 信号量可以用于进程或者线程之间的同步和互斥两种情况。如果用于互斥,一般只需要设置一个信号量sem,操作流程如图5-6所示。如果用于同步,一般需要设置多个信号量,并安排不同的初始值来实现他们之间的顺序执行,操作流程如图5-7所示。 1. 创建和注销 int sem_init(sem_t *sem, int pshared, nsigned int val e) 这是创建信号灯的api,其中val e为信号灯的初值,pshared表示是否为多进程共享而不仅 仅是用于一个进程。lin xthreads没有实现多进程共享信号灯,因此所有非0值的pshared 输入都将使sem_init返回-1,且置errno为enosys。 int sem_destroy(sem_t * sem) 被注销的信号灯sem要求已没有线程在等待该信号灯,否则返回-1,且置errno为ebusy。除 此之外,lin xthreads的信号灯注销函数不做其他动作。 2. 点灯和灭灯 int sem_post(sem_t * sem) 点灯操作将信号灯值原子地加1,表示增加一个可访问的资源。 int sem_wait(sem_t * sem) int sem_trywait(sem_t * sem) sem_wait为等待灯亮操作,等待灯亮(信号灯值大于0),然后将信号灯原子地减1,并 返回。sem_trywait为sem_wait的非阻塞版,如果信号灯计数大于0,则原子地减1并返 回0,否则立即返回-1,errno置为eagain。 3. 获取灯值 int sem_getval e(sem_t * sem, int * sval) 读取sem中的灯计数,存于*sval中,并返回0。 信号量使用示例 1)信号量互斥使用示例 把上例中的互斥锁机制改为信号量机制。源代码threadracesem.c 2)信号量同步使用示例 本例中通过使用两个信号量来实现两个线程间的同步,通过观察其运行结果,可以确定该程序实现了先运行线程二,再运行线程一。


许多生殖器官病变会引起继发性痛经,其中子宫内膜异位症是引起继发性痛经的罪魁祸首。主要表现为渐进性痛经。疼痛多位于下腹部及腰骶部,可放散至阴道、会阴、肛门或大腿部。常于经前1~2天开始,经期第1天最为剧烈,持续至经后逐渐消退,所以经期时间较长者往往疼痛持续的时间也长,这在子宫内膜异位症患者中表现最为突出,宁波不孕不育医院。 健康知识 子宫内膜异位症多以中西结合治疗,中医主要针对淤血导致痛经的特点,要靠化瘀散结的办法排瘀。根据患者月经周期的改变进行对症下药,在缓解痛经疼痛方面能取得较好的效果。西医主要针对异位情况较严重或未生育患者进行手术治疗,射频消融是目前比较先进的微创治疗手段,不仅可以发现早期疾病,还可诊断治疗同时进行,且不用承受开腹之痛。 健康饮食 产后或流产后由于体质虚弱,宫颈口尚未很好关闭,或流血时间较长,组织残留;经期不注意卫生,使用不洁月经垫,经期性生活等,均可使病原体入侵而感染。 3721健康知识网生活健康小帮手 子宫肌瘤是突向子宫腔内生长的子宫瘤体,由于肌瘤表面覆盖着子宫内膜,江苏不孕不育医院,且在宫腔内占位,影响经血排出,因此可引起子宫异常收缩,杭州不孕不育医院,发生痛经,并伴有月经量多及周期紊乱。其邻近器官会出现压迫症状,当肌瘤变性时或浆膜下肌瘤发生蒂扭转时,可发生剧烈腹痛。 3721健康知识网生活健康小帮手 痛经背后的疾病之二:子宫肌瘤 小心痛经背后的疾病 ( 点击图片,进入下一页 ) 生活小窍门 痛经背后的疾病之一:子宫内膜异位症 健康养生 随着微创技术在妇科的广泛运用,一种既可摧毁肌瘤又可保全子宫的凝固刀微创技术在美国问世,江苏不孕不育,并被迅速引进国内。它通过4-8支由计算机全程监控的有温差电偶的超导针,在超声引导下,通过自然腔道直达瘤体组织,使子宫肌(腺)瘤在热凝过程中脱水,凝固,失活,有的被机体吸收、脱落或消失,并使子宫结构功能恢复正常,从而达到摧毁肌瘤保全子宫的目的,苏州不孕不育医院。其特点是保留子宫完整、不开刀、不住院、无痛苦、无并发症、恢复快、随治随走。


p2p协议学习 一、 p2p定义: p2p(peer to peer)对等计算机或对等网络。 p2p的核心是数据存储在客户本地,通过存储信息(名称、地址、分块)的查询,让终端之间直接数据传递。p2p网络让网络上的数据流量分散化,同时管理点不仅没有服务容量的压力,而且只存储数据的索引与链接,不对数据本身负责,避免了版权与管理的麻烦。 "我为人人,人人为我"的思想是基于p2p网络实现的,但不等于p2p。p2p网络实际上是一种"无中央政府的"、"部落式的"网络,加入的方式就是客户端的登录,多数不需要认证,离开更不受限制,别人"取"你的东西是自愿,你拿别人的资源也不用付费,"p2p世界是和谐的"。为了激励大家在获取的同时多奉献,,因为只有奉献的越多,可供共享的也越多,开发者在你下载的同时,利用文件分块的技术,把你刚拥有的部分马上给别人分享,当然这种共享不必再经过你的允许,并且根据你的表现积分,鼓励"好"人,奖励奉献,你帮了别人,别人就来帮你。由于很多p2p网络的协议是公开的,所以加入的方式也很宽泛,不同的p2p网络还可以互通,为信息的进一步共享提供了基础。 自由、松散的p2p网络的最大问题是给政府的监管非常困难,面对的不是一个组织,而是每一个用户。一个用户加入p2p网络后,把自己计算机的处理能力、存储能力贡献给网络,具体谁在使用自己并不清楚。网络的设计者提供了一种集中大家资源的方式,也定义了规则,但具体的内容就要看具体的用户了。p2p是一种新技术,是一个与cs、bs并列的业务开发模式,技术是好的,但天生就是小人物反抗大公司的产物,所以有些人不太欢迎它。 二、我对p2p网络的理解 p2p的应用从下载mp3被人们"认识"起,迅速风靡世界,目前运营上网络骨干流量的一半多都是p2p的流量,并且在文件共享、视频直播与点播、即时通(网上电话)、网络聊天、网络存储、网格计算等领域的应用发展神速。p2p的组网模式与开发模式已经成为互联网上最适合"自由者社区"的网络模式,随着网络的普及,互联网已经走过信息上网、信息搜索的阶段,而"社区型"信息搜索可能成为下一阶段的标志。 我个人理解的p2p发展的关键是p2p的业务模式,因为p2p真正体现了网状网络的优势,也从网络自身上解决了长期困扰人们的tcpip的服务保障问题,在"没有保障"的因特网上,实现了可以保障服务质量的应用,比如:skype的通话、pplive的视频直播。网络是信息化社会的传导神经,而这个神经上最适合的模式是p2p。 p2p技术目前的主要难题还集中在信息的搜索上,搜索技术与p2p的网络结构有直接的关系,先学习一下网络结构是必要的 三、p2p网络结构: 1、 集中式p2p网络:代表是napster、qq 有一个中心服务器负责记录共享信息(索引信息)并应答对这些信息的查询。与cs模式的差异是在cs结构中,客户端之间没有数据流,通过中心服务器交换数据。而p2p登录与信息查询都与中心服务器连接,但查询到数据后,就与存放数据的客户端直接建立连接。 2、 分布式非结构化p2p网络:代表是gn tella 采用了随机图的组织方式来形成松散的网络,没有中心服务器,采用洪泛式搜索(flooding)和随机转发机制(ttl转发机制),每个节点功能相同,兼作服务器和客户机。 节点的管理有些象路由的管理,信息在网络中象水的波纹一样传播,直到"能量"耗尽。 3、 分布式结构化p2p网络:代表pastry、tapestry、chord、can 结构化是对网络解决的管理方式,是一种逻辑上可以结构化查询,而不是物理连接的变动,结构化是为了搜索算法的快捷,一般相当于折半查找。 dht(distrib ted hash table分布式散列表)路由算法是通过分布式散列函数将输入的关键字唯一映射到某个节点上,然后通过特定路由算法和该节点建立连接。网络节点被分配唯一节点标识符(node id),资源对象通过散列运算产生唯一资源标识符(object id),且该资源存储在nid与之相等或相近的节点上,查询时,同样的方法定位到存储该资源的节点。 4、 混合式(半分布式)p2p网络:第三代p2p,代表skype 在分布式模式基础上,将用户节点按能力进行分类,使某些节点担任特殊的任务。用户节点:可以从索引节点处得到相临的搜索节点地址。搜索节点:处理搜索请求,要有128k以上的速度,从子节点中搜索文件列表。索引节点:速度快、内存大的节点,保存可以利用的搜索节点信息、搜集状态信息,并维护网络结构。索引节点也可以同时是搜索节点。用户节点可以选择三个搜索节点为父节点,并提交它的共享列表。一个父节点可以维护500个孩子节点。 首先索引节点的引入不直接连接有版权的资料,摆脱了版权问题。其次引入搜索节点,查询时,用户节点直接连接搜索节点,若搜索的结果不足100个,就向相临的搜索节点再发请求,若还不足,再继续扩散请求,直到所有的搜索节点都访问过。


路过汨罗想起屈原 作为一个楚国人,笔者并不喜欢屈原 不喜欢他身上的阴郁气,心中的怨愤情 如果是笔者,笔者愿意接受这样的流放 远离人世纷争,不需要用心,也不需要用情 笔者愿意就这样终老,任渔船 在江心水流中打着旋子,任故国在暮色中 隐去。恨有多深,爱就有多苦 如果笔者是屈原,笔者只在江边结一座干净的草庐 度清静自在的余生,如果笔者在悲伤中 离开人世,定是笔者的婵娟 不再扣响柴扉,在门外轻轻唤笔者平原君 粽 子 被反复比喻 除了生活的一部分,有时也参与历史叙事 讲述一个人被束缚的痛和被放逐的苦 笔者是下午进入村庄的,历史的模仿和戏拟 正在开始,你看,除了勒痕 笔者愿用洁白无瑕的身子换取那个在人世 不断下沉的躯体。他们划着舟子 把粽子一个个抛入江中,他们表演绝望 和走投无路的样子像是本色演出 那个朗诵《离骚》的人也像屈子附体 他水中的倒影,正曲曲折折随着流水而去 又是一年端午节 又一年的端午节快到了。每年端午节的时候,人们都要把屈原请出来,作为一个伟大的诗人,也作为一个道具。 屈原投水自尽的汨罗江,它的源头就在笔者的家乡湖北省通城县和湖南省平江县、江西省修水县三县交界的天岳黄龙山中。那个地方名字很好听,叫梨树窝,山上一条条细流在那里汇集后成为汨罗江的发源地,然后从修水进平江、汨罗,最后汇入洞庭湖。 天岳黄龙山属天岳幕阜山余脉。笔者每次上天岳黄龙山,都会上天岳关,到一脚踏三省的地方望一望江西、湖南,也回望一下笔者的家乡湖北通城县。 若是春天,笔者还会盯着江西那一边,看哪个地方会有一片洁白如云的花影,然后想那里会不会正是梨树窝。遗憾的是,笔者从没有看见过靠近江西一侧的天岳黄龙山中有过一片洁白的梨花。 在这个三省交界处,通城县历史上出过岳飞的老师、北宋兵部尚书方琼,修水县出过"江西诗派"的代表人物黄庭坚,现代史上的大家陈寅恪,平江县有过著名的平江起义,并因此走出共和国46位将军。 有人说这一切可能和屈原有关,也许屈原真的在流放期间曾沿汨罗江上溯直至天岳黄龙山中的梨树窝。 在所谓屈原投水自尽附近的汨罗山上,方圆两公里内一共有屈原的十二座坟墓,每座坟墓前都立有"故楚三闾大夫之墓"字样的石碑。相传屈原端午节投江自尽,人们十天后才将遗体打捞上来,遗体打捞上来后,半边脸已被鱼虾吃掉。人们不忍其惨状,为屈原配上半边金脸以葬,为防止贪恋金钱的贼人盗墓,又同时筑了十一座相同的坟冢以乱真伪。 笔者到过那里,苍松翠柏下,十二座坟墓并不完全一样大小,但每一座都让人心生悲戚。是不是因为贴金反而使人不得安生,我们不得而知,但贴金肯定不是屈原需要的,因为随流水而去一直是他理想的结束生命方式。他在《离骚》中反复表示愿学彭咸随流水而消亡,他应该是不在乎以身饲鱼虾的。 其实,屈原的生平一直是个谜。先秦时代的史书中没有任何关于屈原的文字记载,我们熟知的屈原几乎都来自司马迁《史记》中的《屈原贾谊列传》和屈原的作品。胡适先生认为《史记》不可靠,并因此怀疑历史上是否真有屈原这个人。历史有点模糊,胡适先生有点武断,但从贾谊的《吊屈原赋》、汨罗十二疑冢和楚辞来看,屈原确有其人应该是无疑的,只能说胡适先生也有其感性、有趣的一面。 笔者是在一个偶然的机会知道汨罗江发源于天岳黄龙山的。尽管笔者的家乡因汨罗江的源头似乎跟屈原关系更近了一层,但人们把端午节这一天作为专门纪念屈原的日子,在笔者的记忆中却没有丝毫印象,或者说在笔者的记忆中,端午节从不曾和屈原有过任何关系。 端午节是农历五月初五日,它意味着夏季(午月)的开端,由于隐含两个"五"字,所以又称为"重午(五)"。进入农历五月,夏季炎热逼近,各种虫蛇和瘟疫开始出现,在笔者的记忆中,我们那儿的老人都说这是一个"五毒尽出"的日子。 端午节的时候,笔者的故乡至今仍然有在门上悬挂菖蒲、艾叶,吃粽子、洒雄黄酒的习惯。我们那一带不仅有小端午,还有大端午。五月初五为小端午,五月十五被视为大端午,都遵循挂菖蒲、艾叶,洒雄黄酒的习俗。菖蒲叶呈剑形状,据说可斩各种妖魔鬼怪,艾草可解毒,雄黄酒可驱虫蛇,习俗的目的是祛邪。 从没有人把端午和屈原的死联系起来。 我们那儿甚至还流传着另一个很有意思的习俗,说男孩在端午这天去池塘或河中洗冷水澡,可保证进入炎热夏季后不生热毒,不长疖子、痱子。很多人说这方法真管用,笔者小时候试过,除了差一点没感冒外,疖子、痱子好像照长不误。但我们仍就一年一年试,像童话故事里一群渴望奇迹发生的男孩。 端午节跟屈原之死有关是笔者进入初中后才知道的,并且在后来还知道端午节不仅和屈原之死有关,也与伍子胥和一个名叫曹娥的女孩有关。 伍子胥是先秦时代楚国英雄。相传当年吴王夫差听信奸言,赐辅臣伍子胥自杀,并于五月五日将其尸体投入江中,老百姓感其冤屈,投粽以避其为鱼食。据说这是端午节在祛邪意义外纪念的第一个人。曹娥是东汉年间的一个女孩。十四岁时她的父亲溺江,因寻不见尸首投江自尽。传说父女俩的尸体在五月初五浮起时,人们看见曹娥的两手是从背后反抱住父亲尸体的,人们对曹娥这个避免以伤风化的举动敬佩不已,于是在每年的五月初五这天举办活动纪念她的孝道。 因这两个人的故事导致端午节传统意义的偏移,这和人们在这天纪念屈原之死的意思是一样的。只是一个本是驱毒除邪的节日,却被同时赋予某种观念或道德价值的引导,这多少有点让人感到不可思议。 在乡村生活过的人都知道,农历日月序数重合的日子几乎都是节日。包括一月一日(春节)、三月三日(上巳)、五月五日(端午),七月七日(七夕)、九月九日(重阳)和十一月十一日(冬节)。还包括北方兴过二月二(龙抬头),江南种水稻的地方兴六月六(割新谷)。据说这是夏历制订时就有的。夏历启用于夏朝,春秋战国时部分诸侯国使用,汉武帝开始全国统一使用夏历,并一直沿用至今。从夏、商、周、春秋至屈原所在的战国时代,中间绵延千余年,笔者相信祛邪才是端午节的本义。 现在的端午节几乎完全成了纪念屈原的日子,有的地方还把它当成了诗人节,这对诗人而言未尝不是一件好事。但于笔者而言,笔者还是愿意回到笔者的家乡,去过那个门上悬挂着菖蒲、艾叶,锅里煮着粽子,门前屋后洒满雄黄酒的端午节。 若天气晴朗,笔者希望能回到笔者的家乡、湖北省通城县四庄乡清水村的清水塘水库里洗一个冷水澡,以驱除半年来生活中的霉气。 希望能再次登上天岳黄龙山,望一望那个从没望见过的梨树窝,想象一下屈原先生真的沿汨罗江上溯至那里沉吟徘徊,然后看三省交界处,笔者的亲人们怎样把一个本就属于他们的节日过得有滋有味。


贵港的伙伴们! 请看过来, 预防新型冠状病毒感染的肺炎, 这些知识点你得了解~ 预防新型冠状病毒感染的肺炎 什么是新型冠状病毒? 冠状病毒是自然界广泛存在的一类病毒,因该病毒形态在电镜下观察类似王冠而得名。目前为止发现,冠状病毒仅感染脊椎动物,可引起人和动物呼吸道、消化道和神经系统疾病。新型冠状病毒(ncov)是一种先前尚未在人类中发现的新型冠状病毒,如此次武汉的新型冠状病毒2019-ncov(who命名)。 有哪些症状? 发热、乏力,呼吸道症状以干咳为主,并逐渐出现呼吸困难,严重者可出现急性呼吸窘迫综合征、脓毒症休克、难以纠正的代谢性酸中毒和出凝血功能障碍;少数患者病情危重,甚至死亡。 是否人传人? 目前已有医务人员感染和家庭密切接触者发病,病毒具备人传人的能力。 如何有效灭活病毒? 对热敏感,56℃30分钟、75%酒精、含氯消毒剂、过氧乙酸和氯仿等脂溶剂均可有效灭活病毒。 有哪些预防控制措施? 飞沫预防、接触预防、空气传播预防 如何降低感染冠状病毒的风险? l 使用肥皂和清水洗手,或含有酒精成分的手消毒剂; l 咳嗽和打喷嚏时使用纸巾或弯曲手肘掩盖口鼻,不对着别人喷嚏、咳嗽; l 避免近距离接触任何有感冒或流感样症状的人,如需接触请佩戴口罩; l 烹调时彻底煮熟肉类和蛋类; l 在无保护时避免接触野生动物和家禽家畜。 如何佩戴口罩? 选择佩戴医用外科口罩或n95口罩,建议每日更换,不要重复使用;不建议使用棉布口罩、新材料口罩或带呼吸气阀的防护口罩。 如何正确洗手? 当手部有可见的脏物时,使用肥皂和流水洗手; 如果手部的脏物不可见,使用肥皂和清水洗手或使用含有酒精成分的免洗手液。 勤洗手:咳嗽或打喷嚏后护理患者后准备食物前、中、后用餐前上厕所后当手脏了时接触动物或处理动物的粪便后。 去生鲜市场买菜怎么办? l 接触动物或动物产品后,用肥皂或清水洗手; l 避免触摸眼、鼻、口; l 避免与生病的动物或变质的肉接触; l 避免与市场里的流浪动物、野生动物、垃圾废水接触。 如何增强疾病的抵抗能力? 保证充足睡眠,不熬夜、不过劳,多进行体育锻炼。 身体不舒服了怎么办? 对自己和家人的健康状况提高警觉,出现发热、乏力、干咳气促等疑似症状应戴好口罩,及时到县级以上医疗机构就诊。 以下是广西新型冠状病毒感染的肺炎定点收治医院名单。 来源:健康荷城 编辑:贵港市文化广电体育和旅游局 了解更多旅游资讯!


现代主义设计孕育了视觉传达设计,它的本质是有效的处理信息并把它传播出去,从纸面到屏幕,从静态到动态,从平面到空间,它和媒介及传播技术的发展是紧密联合一起的。然而随着信息时代的到来,媒介传播从内核到形式都发生了翻天覆地的变化,个体越来越呈现出强烈的个性而且越来越难被标签化,效率即将被人工智能替代,这一切都迫使我们开始重新审视一些问题: 为"人"服务的设计要如何产生? 新的设计精神是什么? 作为"人"的设计师角色是什么? 在设计中,勇敢重要?还是效率重要? 推出 vc(visual communication)grad show 这个栏目其实代表了我们的观点,我们认为在未来的设计中"勇敢"要比"效率"重要。这是一个焦距毕业设计阶段作品的栏目,在这个阶段新一代的设计师们把它作为学习生涯的结束,也把它作为设计生涯的开始;他们努力挣脱社会标签,产业束缚,富有实验精神,他们就像没有被现实打磨的原石。他们在尝试创新的冒险,他们不一定在做"对"的设计,也不一定有效率,但是这个阶段他们在做最"勇敢"的设计。 vc grad show 集中关注视觉文化及设计方向,鼓励创新,展现无惧稚嫩却富有冒险精神的设计作品,为它们提供一个向世界大声 say hi 的舞台。与一般栏目不同的是我们更关注个体,vc grad show 将深度挖掘他们的声音:学生,导师,学校,甚至是作品本身背后的感触和故事。它将是一个多角度,专辑式的栏目。 我们的栏目将持续关注全球范围内的视觉传达领域毕业作品,持续更新,同时也欢迎国内外各大设计艺术院校与我们联系,将你们的毕业设计作品在这里展示出来。 第 20 所学校,我们选择了伦敦艺术大学中的 中央圣马丁艺术与设计学院 中央圣马丁艺术与设计学院享有非凡的国际声誉,是伦敦艺术大学六所分院中最大的一所。它提供英国最多样、最全面的艺术与设计学位和研究生课程,从本质上讲,它才是一所完整的艺术学院。在全体师生的共同努力下,中央圣马丁艺术与设计学院以过去所取得的成就为基础,不断推进艺术与设计的实践和艺术与设计的教育之间的界限,力求再创佳绩。 中央圣马丁溯源:csm成立于1989年,由2个学校合并而成:中央艺术和工艺学校(始建于1896年)-以其设计包括工业设计和平面设计享有盛誉。圣马丁艺术学校(始建于1854年)-以其时装和美术而闻名于世。伦敦戏剧中心(建于1962年)于1999年加入,带来表演艺术的课程。影星科林·菲尔什(bj的单身日记)和皮尔斯·布鲁斯南的母校。柏亚姆肖艺术学校于2003年9月加入。 中央圣马丁艺术与设计学院从艺术和设计的实践及艺术和设计教育方面继续拓展未来。学院鼓励学生挑战现有准绳,毕业生均为领导及创新者。学院务求学生都能明白自己的潜质,为新世纪贡献而铺路。csm相信其毕业生无论是艺术家或设计师,在我们日常生活架构上都扮演重要的角色。学生在学院可进修基础课程、学士、硕士至博士级课程。课程广泛,计有四大主流如艺术、纺织、时装 (包括新闻学) 传播设计 (包括电影、录像及多媒介传播) 及立体设计等。学院亦支持各项研究工作及老师个别研究等。 csm有4,500名学生,34个课程。 作为艺术和文化结合的艺术学院,中央圣马丁艺术与设计学院(csm)以其学生、教职员和毕业生的创新能力而享誉世界。 2011年秋天,中央圣马丁艺术与设计学院搬到位于伦敦市中心 king s cross 的新校区,新落成的校区凝聚所有学科和学术资源,为伦敦最新的文化创意中心带来更多的合作机会和无限的潜能。 ma comm nication design 作为"21世纪的载体信号",视觉传达设计涉及到人类生活的方方面面。 它对文化、技术、社会公正、经济、建筑环境、全球化、政治、可持续性等方面产生了深远的影响。中央圣马丁艺术与设计学院(central saint martins)视觉传达设计硕士课程不仅促进了学生们对一个不断发展的主题的共同探索,同时也让你成为一名独立设计师。 ma graphic comm nication design 追求的是传统平面设计的"应用艺术"与批判性和创造性的传播交流方式之间最为直接且有深度的联系。任何通信形式的载波信号都是信息的基线流。它被不断地调整以发送消息并且重新塑造其含义。如果音乐可以被理解为二十世纪的载波信号,作为传播媒介与载体,它既能表达又可以放大文化变迁的浪潮。那么此刻,视觉传达设计本身就是二十一世纪的载波信号。 ma graphic comm nication design 对于视觉和其他媒体,培养了一个更为深思熟虑的立场。通过本课程,你将会面临同时发展关键性职位的挑战,通过视觉传达有关的设计,并创造新的形式。该课程对驱动和动手实践图形设计和信息传播设计进行了综合性研究。 学院毕业展主视觉 虽然视觉传达设计是我们的领域交汇点,但在实践上我们是存在不同之处的。我们的工作连接了不同的学科、主题和工作方法,根据新的项目、环境和调研进行了调整和更改。 在一个充满着不稳定的变化和发展的领域,我们要如何定义我们的立场,同时对变化、发展和修改持开放态度? 作为对该问题的临时性回应,每个设计师都写出了一些特定的词语来去构成此次展览的大框架和背景。但是,当项目最终落地时,这些早期被写出的"词语"会因为实践和过程发生改变,而这种"变化"的意义同最开始用来下定义的"词语"有着同样的意义。在这次的展览中,我们不只是会展出我们工作的既定项目,而是去展览记录了我们的工作正在进行的发展过程中添加、删除和替换"词语",这为我们正在进行的编辑、扩展和阐述我们的实践项目提供了信息。 关于 "陆俊毅_设计现场" 陆俊毅_设计现场是一个专注于传播视觉设计为主,涉及各领域多方位信息的公共交流平台。我们力求引领当下视觉传达的行业发展,启发高校设计教育的进步,关注全球各类设计人才的成长。 我们的粉丝包含艺术类学生、设计师、设计爱好者,目前微信公众号粉丝量达15万以上,微博粉丝量达18万以上。 我们作为媒体方长期与国内外的协会组织、院校、展览赛事有合作,包含活动策展、设计赛事报道等。 abo t "l j nyi design live" l j nyi design live is a platform that foc ses on the dissemination of news and reso rces on graphic and comm nication design to the p blic. it also involves m lti-faced information in vario s field of design. in china, we strive to lead the development of the vis al comm nication design ind stry, inspire the progress of design ed cation in colleges and niversities, and pay attention to the growth of design talents aro nd the world. o r followers incl de art and design st dents, ed cators, design professionals, and design lovers. so far, we have more than 15,000 followers on the platform of wechat. besides, we have more than 180,000 followers on weibo. as a professional media platform foc sing on design, we have long-term cooperation with vario s design associations, niversities and colleges, exhibitions, and design competitions both in china and abroad, incl ding design exhibition and event c ration and reports. 本栏目由设计现场策划(出品) 策划人:陆俊毅 许一兵 vi设计:林涛 图片版权自张一骑, 部分内文翻译萧文, 未经许可,严禁转载,谢谢合作。


我国是一个法制的大国,在很多方面都规定了相关法律。《劳动合同法》当中规定的经济补偿金,其实也有人习惯称之为经济赔偿金。通常在单位存在过错的情况下,才需要支付劳动者一定数额的经济赔偿金。那么经济赔偿金的上限有吗?小编整理了相关的内容,希望对您有帮助。一、经济赔偿金有上限吗《劳动合同法》取消了对普通员工经济补偿金支付的上限原劳动部《违反和解除劳动合同的经济补偿办法》中经济补偿金的支付设限的情形包括:经劳动合同当事人协商一致,由用人单位解除劳动合同的,用人单位根据劳动者连续工龄发放经济补偿金,最多不超过十二个月;劳动者不胜任工作,经过培训或调整工作岗位仍不能胜任工作,由用人单位解除劳动合同的,用人单位应按劳动者连续t龄发放经济补偿金,最多不超过十二个月;劳动者以用人单位末依法支忖劳动报酬等原因解除劳动合同的。《劳动合同法》实施后,对于普通员工来说,经济补偿金支付不再有上限。如某员工因不胜任工作,经过培训或调整工作岗位仍不能胜任工作,与用人单位解除劳动合同,如果其在该单位工作20年,按照《劳动合同法》的规定,用人单位应支付20个月的经济补偿金。《劳动合同法》对于高薪员工的经济尝标准实施了"双上限"(1)何为"髙薪员工"?《劳动合同法》中的高薪员工是指月工资高于用人单位所在直辖市、设区的市级人民政府公布的本地区上年度职工月平均工资三倍的劳动者。(2)何为"双上限"?对于高薪员工,用人单位在支付经济补偿金时,按职工月平均工资三倍的数额支付,而不是实际工资且向其支付经济补偿的年限最高不超过十二年。例如,甲月工资为1万元人民币,超过了其所在市上年度职工月平均工资的三倍(假设该市上年度职工月平均工资为2000元),其在该单位工作15年,则其最后获得的经济补偿金为:=元二、经济赔偿金的支付时间《劳动合同法》规定用人单位依照本法有关规定应.当向劳动者支付经济补偿的,在办结工作交接时支付。这里需要注意的是:经济补偿金的支付是在办结工作交接时,而不是解除或终止劳动合同时,这点为企业hr提供了一个约束劳动者及时办理工作交接的法宝。如劳动者未办理工作交接,则用人单位可以暂不付经济补偿金。另外,企业为有效运用这一法宝,在与劳动者签订劳动合同时应明确办结工作交接的具体事项、程序以及办结的标准,以免在今后的纠纷中处于不利。通过小编介绍了经济赔偿金的上限问题,相信你对这方面有了新的了解和新的认识。实践中,对于普通员工来讲,如今对经济赔偿金已经取消了上限的规定,但如果是高薪员工的话,则还是有经济赔偿金的上限限制的。如果你还有相关问题欢迎咨询在线律师。


"医生,我拍的片子有毛病吗? 有的地方白,有的地方黑, 这正常吗? " "你说的黑是什么黑? 你说的白是什么白? " ... 有这样一种职业, 你以为ta很简单: 毕竟,看图说话,谁不会? 但是,uc君还真的不会了! 不信,你试试? 提问  下面这张片子, 是人,还是猫?  查看答案 这是猫的肺部 觉得简单? 那uc君再给大家看一张, 是人? 还是猫? 查看答案 这是人的脊椎 是不是觉得像雾像雨又像风? 反正,uc君这两张图都是靠蒙的。 怪不得, 有人总结了医学影像学习的"三种境界"。 (对,没错,今天uc君要给大家介绍的就是这个专业~) 第一重: 看山是山,看水是水。 这个时候刚入门,觉得一个征象对应一个病症,或几个征象锁定一个病变。 但是同学,你还太年轻,征象与现实并不总是对应的,不同疾病可能会出现相同的影像表现,这就叫做"异病同影"。 第二重: 看山不是山,看水不是水。 痛定思痛,发现: 长毛刺的不一定是肺癌,界清不热的也未必不是脓肿,假作真时真亦假,一切如雾里看花。 第三重: 看山还是山,看水还是水。 等知识和经验积累到一定程度,就会对影像、病理、临床有了一个更清晰的认识,知道影像是诊断的一种手段,这时,看山还是山,水还是水,表面是在看片,实际上还会详细了解病史,参考病人其他化验结果,影像报告是综合分析判断的结果。 怎么样,是不是觉得医学影像的辩证思维,很有高度? (上图为新型冠状病毒肺炎的影像学表现: 女,56 岁,2019.12.25 发病,2020.1.5 x线检查) 就像前面提到的,医学影像是临床诊断的手段,也是临床治疗的"眼睛"(对,你是我的眼~)。 医学影像是一门 综合性很强的学科 ,影像医师需要熟悉身体的每个部位,然后要学会如何正确去评价图像,熟悉各种常见病变的不同影像表现,反复甄别无数张图像,抽丝剥茧,找到异常影像,最终判断形成这些异常影像的疾病会是什么,作出诊断报告。 需要学习的科目 包括:人体解剖学、生理学、病理学、临床医学、ct诊断、影像病理学、放射成像、放射影像解释、放射生物学和剂量学等等。 感兴趣的同学,那就跟着uc君一起来看看医学影像这个专业在澳洲的发展前景以及uc获得认证的课程吧~ 未来5年: 11,000个就业岗位 根据澳洲政府job o tlook公布的数据,医学影像从业人员就业岗位增长趋势强劲,在未来5年中,将有11,000个就业岗位,并且,根据2018年数据,该专业人才在澳洲供不应求,雇主很难找到放射诊断师和超声医师等专业人才,属于澳洲紧缺职业。 (点击图片查看大图) 正因为医学影像人才需要掌握的专业技能很高,所以从业人员的薪资水平也很高,周薪为2,354澳币,折合人民币约11,000元, 年薪约为61万元人民币 ,也远高于澳洲平均周薪1,460澳币。 (点击图片查看大图 ) 随着精准医疗与ai技术的发展与落地,也将进一步改变影像医师的工作模式,极大地提效影像判读,让影像医师有更多时间专注在疑难病例的会诊、与临床医生合作制定治疗方案等等工作上。 当然,除了在医院工作,该专业的毕业生也可以考虑到以下医学影像相关企业工作 (点击图片查看大图 ) 医学影像学位课程 听了uc君上面的介绍,如果你对医学影像感兴趣或者想在澳洲注册成为一名放射诊断师的话,那么uc医学放射科学学士(医学影像)课程便能为你未来通往梦想职业打下坚实的基础。 (当然,想要进一步深造的同学,可以直接跳到文末,查看uc医学影像硕士课程相关信息。 ) 01 可提前半年完成课程 与其他医学影像课程相比,uc的这门课程不仅获得澳大利亚医学放射从业协会(medical radiations practice board of a stralia ,mrpba)认证,而且能让你领先于他人一步,提早半年进入职场工作: 学生可选择在3年半时间内完成4年制本科课程所有学习内容,并具备申请成为澳洲注册放射诊断师的资格、知识和经验。 或者,学生也可以选择在第三和第四年完成一门研究课程,从而在毕业的时候拿到荣誉学士学位。 02 10周或更久的专业实习 职学结合(wil)是uc课程重要的组成部分,通过这些实践和实习工作,如在模拟和受控的实验室环境中操作使用x射线等等,能为学生积累宝贵的实践经验。 此外,学生还将参与各种必须的临床实习工作,包括课程的第二和第三年会进行两次为期五周的临床实习等等,以及其他时间更长的实习工作。 实习地点包括本地或国家级的医疗机构,如区域性医院,大型教学医院和私人执业机构等。 03 王牌学院和资源 在最新公布的2020年泰晤士高等教育世界大学学科排名中,堪培拉大学在临床,临床前和健康这一类学科中排名位列 世界第101-125名,澳洲第7名 。 健康学院,作为uc的王牌学院,一直以来都是学校教学与科研的重点,近几年,学校更是在其提出的价值30亿澳元的战略性校园发展计划中,特别规划了包括与堪培拉政府合作的公立医院、社区医疗中心等在内的健康专区(health precinct),从而为学生创造更多临床实习机会及毕业就业机会。 想看看uc医学影像专业的设备有多先进? 戳视频 课程信息与入学条件 医学放射科学学士(医学影像学) bachelor of medical radiation science (medical imaging) 学生将参与各种必须的临床实习工作,包括课程的第二和第三年会进行 两次为期五周的临床实习 等等,以及其他时间更长的实习工作。实习地点包括本地或国家级的医疗机构,如区域性医院,大型教学医院和私人执业机构等。 专业认证 本课程为澳大利亚医学放射从业协会(medical radiations practice board of a stralia ,mrpba)认证课程,学生毕业后可在澳洲申请成为注册诊断放射医师,并在全球范围内受到认可。 *由于该课程竞争激烈,申请人可能被要求参加面试选拔。 毕业生可从事的职业包括:放射科医生、乳腺造影师、血管造影师、磁共振成像(mri)放射师、电子计算机断层扫 描(ct)放射师、临床教育者、临床研究员、研究经理、供应商应用专家等等。 医学影像硕士 master of medical imaging 作为课程的一部分,每位学生都将参与临床实习和驻院实习。 通过这些实习,学生将获得宝贵的实践经验,有机会与来自不同种族,年龄,性别的患者进行互动,并与经验丰富的行业专家建立联系。 专业认证 本课程为澳大利亚医学放射从业协会(medical radiations practice board of a stralia ,m rpba)认证课程,学生毕业后可在澳洲申请成为注册诊断放射医师,并在全球范围内受到认可。 学术要求: 本科学位,并学习过人体解剖学及生理学两门课程,需参加面试 英语要求: 雅思总分7,单科不低于7 毕业生可从事的职业包括:放射科医生、乳腺造影师、血管造影师、磁共振成像(mri)放射师、电子计算机断层扫描(ct)放射师、临床教育者、临床研究员、研究经理、供应商应用专家等等。 好了,课程介绍完了,请让uc君在文章的最后,向所有奋战在一线的医护人员致以最崇高的敬意!


见人民网上有君"以飨各位"地选取了历代十则"最具个性"的墓志铭;实乃铭如其人,字字千钧,引人入胜。 仅用10个字就涵盖了其一生的韩信的那个墓志铭挺深刻的! "生死一知己,存亡两夫人。" 成也萧何败萧何。韩信的这位知己萧何,既是他获得重用并成为历史名人的千里马;又是最终将他诓上断头台的刽子手。其生其死全都系仰仗这位"知己"萧何! 正应了偶之前的一段感悟:伤口,不是"熟人"不撒盐,不是"熟人"也撒不了盐... 存也妇人,亡也妇人。 从军前的韩信穷途潦倒,时常食不果腹,饿得来前胸贴着后背。多亏他在流浪晃荡途中遇到位善良的村妇,将他接回家中将养10余日,救了他的性命;这也才有了韩信后来的伟绩。 而最终立下丰功伟绩的韩信被当皇了的刘邦猜忌,终归被杀却并非出自刘邦之手,而是揽权干政的皇后-刘邦夫人吕雉! "生死一知己,存亡两夫人。"10个字的墓志铭涵盖了韩信一生,挺有个性也挺深刻,足矣! 俗话说,人若倒了霉,常常祸不单行,喝水都会塞牙! 再一则"无名氏"的墓志铭,很有味道,加上标点符号不足50个字,但却非常鲜活地揭示出了一位"倒霉者"的一生: "初从文,三年不中;后习武,校场发一矢,中考官,乱棒逐之出;遂学医,有所成。自撰一良方,服之,卒。" 这位无名氏的志向还是有的;然却是一生坎坷、"命运"不济。 开初立志寒窗苦读"从文",然却连考三年都名落孙山、未中科举;心灰意冷觉得自己不是块儿"读书的料"。 "文"的路行不通,那就改"武"的吧?继而投笔从戎"习武"。 殊不知站立于校场拉弓应考,嗖地一声射出一支箭,箭靶没沾着边儿,却不知咋的把个考官给射中了! 射中了考官这还了得?武考的资格被当即取缔了不说,还被一顿乱棍给撵出了考场... 看来"文武"之路都行不通了!终归"天生我材必有用"啊? 于是又选择了"从医"。照着葫芦画瓢地学了一阵"医术",始终感觉似"学有所成"了!又寻思唯有自己独特的"发明"才可能出人头地,于是暗自琢磨出了一剂"惊世良方",奋不顾身去以身试药,结果把自己给毒死了... 这无名氏先后"从文、习武、学医"的一生,实在可谓"忒倒霉"了!倒霉得来祸不单行,喝口水都会塞牙。 著名诗人骆一禾,据悉是"海子诗歌卓越的阐释者"?很可惜是其英年早逝,去世的时候才年馑28岁! 著名诗人、文人的墓志铭,通常都会是其作品中挺经典也挺能概括亡人长期稳定"气质"与"个性"的一个句子。 在诗人骆一禾的墓碑上刻着他写过的一句诗:"我的心是朴素的,我的心不占用土地。" 想来这毫无一点儿矫饰的"朴素"(其实也系"朴实"),大概正是这位年轻诗人之所以能够成名的要害所在?!终归那些"华而不实"的东西,不会是出自真心,没啥太大"价值"的... 心的朴素、朴实的一个挺真切的特点,就是"不占地儿"。 年至93高龄辞世的启功先生的自撰墓志铭,据说是他在66岁风华正茂时期为自己写就的?不光是一幅著名的书法杰作,也可谓颇具艺术大家人品风范的名篇! "中学生,副教授。博不精,专不透。名虽扬,实不够。高不成,低不就。瘫趋左,派曾右。面微圆,皮欠厚。妻已亡,并无后。丧犹新,病照旧。六十六,非不寿。八宝山,渐相凑。计平生,谥曰陋。身与名,一齐臭。" 这则墓志铭,很有点儿富兰克林的味儿了! 身为十六世纪的著名政治家、科学家,同时也是出版商、印刷商、记者、作家、慈善家,更是杰出的外交家及发明家的富兰克林,是美国"独立宣言"的起草者;然在其去世后的墓志铭上,却赫然镌刻着这样7个大字: "印刷工富兰克林"。 而那位著名大作家海明威自撰的墓志铭,恰如他本人那样的诙谐风趣:"恕我不起来了!" ... 之前曾经在看一则有关殡葬改革的电视报道的时候,不禁有些兴奋地对家人说:"这个法子好!今后如若俺走了,就这么干!" 那新闻说的是有个地方,专门修建了一座大公园,公园内有几座绿树掩映、花草丛生的拾级花坛。 人若去世了,只需跟公园管理人知会一声,无需花钱去买墓地,就买个可溶解的骨灰瓶,直接埋在那绿树掩映、花草丛生的花坛之中;无所谓"墓",也无所谓"碑"。 即便今后后人扫墓,也仅需在埋葬的那个地儿去摆放几朵花便是... "这个法子好!人都固有一死。一个名不见经传的普普通通的平头,什么 追悼会 也好、 告别仪式 也罢,究竟有多大的意思?如此劳民伤财纯粹是多此一举! 若许年后俺若是走了,莫要那么费事儿! 光溜溜地入世,光溜溜地出世 。躯体内凡是还能用的器官全都捐了;连个 墓地 也不需要! 就找个相对能够 永久 的大公园,找个有绿树掩映、花草丛生的地儿,把可溶解的骨灰瓶给埋了;后人如果想要 祭奠 ,就去那地儿摆放几朵花便是... 多简单,多省事,多文明,多好!" 读到那篇选取了历代十则"最具个性"的墓志铭"以飨各位"的文附带提了个问题: "问题来了,你打算给自己写些什么作为墓志铭呢?" 心里寻思,一个连"墓地"都不愿要的人,何谈"墓志铭"呢? 不过也不妨赶赶"时髦",闲暇没事儿琢磨了一句: "身已尘,心化灰"。 "藏头"?"藏尾"?或者"全藏"? 即可读成"身心已化尘灰",亦可读作"尘灰已化身心"... 总之意思明了:人死身心均系尘灰。 走后不想要"墓"也不愿要"碑",就搁心里算了!


(谜材) 【姓氏联典·裘】 望居渤海; 源自春秋。 指裘姓郡望和源流 求同存异; 衣锦荣归。 裘姓"裘"字析字联 德同夏禹; 惠比羊祜。 上联:清代裘曰修,字叔度,新建人。乾隆进士,历官礼、刑、工部尚书。所莅有名绩,治水尤为著,屡命勘视河道。卒谥文达。 下联:清代徐州镇总兵裘安邦,字古愚,号梅林,会稽人。嘉庆武进士,官至徐州镇总兵。好文治,能作诗。尤关心民间疾苦,时比之晋羊祜 唐时佳士; 晋代名流。 上联:唐裘瑜,以诗著名。 下联:晋裘徵 竹斋藏集; 横山著文。 上联:宋淳煕进士裘万顷,有孝行,厉节操,学问渊博,著有《竹斋诗集》。 下联:清裘琏,戏曲作家,著有《横山文集》等传世 诗藏竹斋; 文著横山。 同上 著书嗜古; 治水标功。 李文郑题裘姓宗祠。上联:清钱塘人裘焕,字煜炎,诸生。擅绘画,精医术,博览古代典籍,终生以著书为事。 下联:裘曰修 孝感祥云覆; 名臣治水功。 上联:宋裘仲容割股疗亲,有祥云覆其居。 下联:裘曰修 著述四清古鉴; 官历三部尚书。 指裘曰修 慈溪喜唱昆明池; 新建长吟竹斋诗。 上联:清康熙进士裘琏,字殷玉,慈溪人。戏曲作家。有杂剧《昆明池》等四种。 下联:裘万顷 献子同明,贤列五人之次; 元卿良友,誉隆三仲之班。 上联:周代贤人裘牧仲。 下联:汉代名人裘仲 起源: 起源主要有三:①以采邑为姓氏。春秋时卫国有个大夫被分封在裘邑,后人用裘作为姓氏。②以官职名为姓氏。相传周朝有裘官,负责制作皮质,后代子孙以官名作为姓氏。③他姓改姓仇。据《广韵》记载,有仇姓因避仇杀而改姓裘,另有求姓改为裘姓。 始祖:裘侯。迁徙: 裘姓一部分来自姬姓,姓春秋时卫国公族有食采于裘邑,其后人遂以邑为姓,起源于今河南东北部;一部分是以职官为姓,来源于周朝掌管制造皮制品的官职。裘姓早期主要在河南、河北以及辽宁东部活动,并以渤海郡为望族聚居地。后来随着战乱和迁徙,逐步遍布大江南北。目前在河北、北京、辽宁、山西、江西、福建、浙江、江苏等地有零星分布,以江浙较为集中。目前裘姓人口没有进入全国前三百位。郡望: 渤海郡 西汉置,位于今河北、辽宁的渤海湾沿岸。堂号: 敦睦堂 意思是来源于一个和睦的家庭。宋朝时期的裘承询一家,居住在云门山的前面,一家和睦相处,从来不闹分离。十九代没有分过家。 其它堂号:①郡望堂号:渤海。②自立堂号:横山等。字辈: 某支裘氏字辈:仁贵熊之文学锡宗祖。名人: 裘甫(?-860),唐末农民起义军首领。大中十三年(860)于浙东率众起义。先攻占象山(今属浙江),未几,又攻占剡县(今浙江嵊县),大量屯粮积谷,制造军械,募集士卒达三万余人,自称"天下都知兵马使",并改元"罗平",铸印曰"天平"。继之又攻占唐兴(今浙江天台)、上虞(今属浙江)、余姚(今属浙江)。唐派原安南都护(今越南)王式率众镇压,王式至浙东开仓赈济饥民,不举烽火,招募江淮、吐蕃、回纥人作骑兵,联合当地土团,对义军进行围攻,义军所占领之地,大都丧失。最后围守剡县,仅三日中,即激战八十三次,城中妇女亦英勇参战,终以众寡不敌,被俘牺牲。起义历时七月,由此揭开了全国性农民大起义之序幕。 裘万顷(?-1222),南宋诗人。字元量,号竹斋,新建(今属江西)人。淳熙十四年进士。绍熙四年,授乐平簿,与洪迈诗篇往来,有"云归青嶂雨初歇,花卧碧苔春已休"之句,洪极叹赏。嘉定六年,召除吏部架阁。七年,迁大理司直,求为江西抚干以便养亲。与真德秀、杨简交游,雅相倾倒。秩满不调,退归西山。十五年,以曹彦约等荐再入江西幕,一月而卒。为人耿直,不尚名利,倪祖义《跋竹斋遗稿》称其"文章典雅,字画妍秀,足以自成一家"。其诗不作硬语,恬淡峻洁,在当时与胡桐原、万澹庵、徐竹堂号称"四杰",在后世以生于豫章而不染江西陋习见称。如《雨后》、《出门》、《见雪》、《不雨》、《早作》等,语淡情浓,颇为后人称赏。有《竹斋诗集》三卷、附录一卷。 裘琏(1644-1729),清戏曲作家。浙江慈溪人,字殷玉,号蔗村、废莪子。康熙五十四年(1715)进士。授翰林院庶吉士,旋以年老乞归。曾参与纂修《大清一统志》。能诗古文词,工乐府,擅写戏曲。著有杂剧《昆明池》、《集翠裘》、《鉴湖隐》、《旗亭馆》及传奇《女昆仑》、《万寿升平》等,四种杂剧均取材于唐代故事,合称《明翠湖亭四韵事》。另有《复古堂集》、《横山文集》、《横山诗集》等。 裘曰修(1712-1773),清臣、学者。字叔度,一字漫士,江西新建人。乾隆四年进士,历官礼、工、刑部尚书。奉敕撰《热河志》、《太学志》、《西清古鉴》、《秘殿珠林》、《石渠宝笈》,又奉命补《华严经》残本。屡勘河道,治水有名绩。多次主持乡试会试,是纪昀的受业师。二人关系甚密,纪昀有《断碑砚歌为裘漫士先生作》、《漫士先生绘断碑砚图敬题其后》等诗文及铭言。乾隆三十八年闰三月充《四库全书》馆总裁,不到两月病卒。卒谥文达。 裘行简,清臣。字敬之。江西新建人,裘曰修之子。赐举人,历官军机章京、太仆寺卿、兵部侍郎衔署直隶总督。乾隆中,先后从大学士阿桂参加甘肃石峰堡之役,察治河南睢州河工。嘉庆中,赴陕西犒军,疏论战守事宜;清厘直隶、福建钱粮亏空,得嘉庆帝信任。嘉庆十一年卒。谥恭勤。 其他裘姓名人有周官员裘牧仲;汉名人裘仲;唐诗人裘瑜;宋官吏裘淳,名士裘承询;明官吏裘贤;清将领裘安邦,诗人裘纫兰等。近当代裘姓名人有物理学家裘维裕,磁共振专家裘卿、裘祖文,医学家裘吉生、裘沛然,食用菌专家裘维蕃,民法学家裘千昌,图书馆学专家裘开明,翻译家裘柱常,女报人裘毓芳,美术家裘兆明,京剧演员裘桂仙、裘盛戎,演员裘弋等。


应用程序基础 关键类 activity service broadcastreceiver contentprovider intent android应用程序使用java做为开发语言。aapt工具把编译后的java代码连同其它应用程序需要的数据和资源文件一起打包到一个android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。 从很多方面来看,每个android应用程序都存在于它自己的世界之中: 默认情况下,每个应用程序均运行于它自己的lin x进程中。当应用程序中的任意代码开始执行时,android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。 每个进程都运行于自己的java虚拟机(vm)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。 默认情况下,每个应用程序均被赋予一个唯一的lin x用户id,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户id是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个id的应用程序也将在运行时使用同一个lin x进程,以及同一个虚拟机。 应用程序组件 android的核心功能之一就是一个应用程序可以使用其它应用程序的元素(如果那个应用程序允许的话)。比如说,如果你的应用程序需要一个图片卷动列表,而另一个应用程序已经开发了一个合用的而又允许别人使用的话,你可以直接调用那个卷动列表来完成工作,而不用自己再开发一个。你的应用程序并没有吸纳或链接其它应用程序的代码,它只是在有需求的时候启动了其它应用程序的那个功能部分。 为达到这个目的,系统必须在一个应用程序的一部分被需要时启动这个应用程序,并将那个部分的java对象实例化。与在其它系统上的应用程序不同,android应用程序没有为应用准备一个单独的程序入口(比如说,没有main方法), 而是为系统依照需求实例化提供了基本的组件。共有四种组件类型: activity activity是为用户操作而展示的可视化用户界面。比如说,一个activity可以展示一个菜单项列表供用户选择,或者显示一些包含说明的照片。一个短消息应用程序可以包括一个用于显示做为发送对象的联系人的列表的activity,一个给选定的联系人写短信的activity以及翻阅以前的短信和改变设置的activity。尽管它们一起组成了一个内聚的用户界面,但其中每个activity都与其它的保持独立。每个都是以activity类为基类的子类实现。 一个应用程序可以只有一个activity,或者,如刚才提到的短信应用程序那样,包含很多个。每个activity的作用,以及其数目,自然取决于应用程序及其设计。一般情况下,总有一个应用程序被标记为用户在应用程序启动的时候第一个看到的。从一个activity转向另一个的方式是靠当前的activity启动下一个。 每个activity都被给予一个默认的窗口以进行绘制。一般情况下,这个窗口是满屏的,但它也可以是一个小的位于其它窗口之上的浮动窗口。一个activity也可以使用超过一个的窗口──比如,在activity运行过程中弹出的一个供用户反应的小对话框,或是当用户选择了屏幕上特定项目后显示的必要信息。 窗口显示的可视内容是由一系列视图构成的,这些视图均继承自 view 基类。每个视图均控制着窗口中一块特定的矩形空间。父级视图包含并组织它子视图的布局。叶节点视图(位于视图层次最底端)在它们控制的矩形中进行绘制,并对用户对其直接操作做出响应。所以,视图是activity与用户进行交互的界面。比如说,视图可以显示一个小图片,并在用户指点它的时候产生动作。android有很多既定的视图供用户直接使用,包括按钮、文本域、卷轴、菜单项、复选框等等。 视图层次是由activity.setcontentview 方法放入activity的窗口之中的。上下文视图是位于视图层次根位置的视图对象。(参见用户界面章节获取关于视图及层次的更多信息。) 服务 服务没有可视化的用户界面,而是在一段时间内在后台运行。比如说,一个服务可以在用户做其它事情的时候在后台播放背景音乐、从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的activity使用。每个服务都继承自service基类。 一个媒体播放器播放播放列表中的曲目是一个不错的例子。播放器应用程序可能有一个或多个activity来给用户选择歌曲并进行播放。然而,音乐播放这个任务本身不应该为任何activity所处理,因为用户期望在他们离开播放器应用程序而开始做别的事情时,音乐仍在继续播放。为达到这个目的,媒体播放器activity应该启用一个运行于后台的服务。而系统将在这个activity不再显示于屏幕之后,仍维持音乐播放服务的运行。 你可以连接至(绑定)一个正在运行的服务(如果服务没有运行,则启动之)。连接之后,你可以通过那个服务暴露出来的接口与服务进行通讯。对于音乐服务来说,这个接口可以允许用户暂停、回退、停止以及重新开始播放。 如同activity和其它组件一样,服务运行于应用程序进程的主线程内。所以它不会对其它组件或用户界面有任何干扰,它们一般会派生一个新线程来进行一些耗时任务(比如音乐回放)。参见下述 进程和线程 。 广播接收器 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态。 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自broadcastreceiver基类。 广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用notificationmanager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。 内容提供者 内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件系统、sqlite数据库或其它方式。内容提供者继承于contentprovider 基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。然而,应用程序并不直接调用这些方法,而是使用一个 contentresolver 对象,调用它的方法作为替代。contentresolver可以与任意内容提供者进行会话,与其合作来对所有相关交互通讯进行管理。 参阅独立的内容提供者章节获得更多关于使用内容提供者的内容。 每当出现一个需要被特定组件处理的请求时,android会确保那个组件的应用程序进程处于运行状态,或在必要的时候启动它。并确保那个相应组件的实例的存在,必要时会创建那个实例。 激活组件:intent 当接收到contentresolver发出的请求后,内容提供者被激活。而其它三种组件──activity、服务和广播接收器被一种叫做intent的异步消息所激活。intent是一个保存着消息内容的intent对象。对于activity和服务来说,它指明了请求的操作名称以及作为操作对象的数据的uri和其它一些信息。比如说,它可以承载对一个activity的请求,让它为用户显示一张图片,或者让用户编辑一些文本。而对于广播接收器而言,intent对象指明了声明的行为。比如,它可以对所有感兴趣的对象声明照相按钮被按下。 对于每种组件来说,激活的方法是不同的: 通过传递一个intent对象至 context.startactivity或activity.startactivityforres lt以载入(或指定新工作给)一个activity。相应的activity可以通过调用 getintent 方法来查看激活它的intent。android通过调用activity的onnewintent方法来传递给它继发的intent。 一个activity经常启动了下一个。如果它期望它所启动的那个activity返回一个结果,它会以调用startactivityforres lt来取代startactivity。比如说,如果它启动了另外一个activity以使用户挑选一张照片,它也许想知道哪张照片被选中了。结果将会被封装在一个intent对象中,并传递给发出调用的activity的onactivityres lt 方法。 通过传递一个intent对象至context.startservice将启动一个服务(或给予正在运行的服务以一个新的指令)。android调用服务的 onstart方法并将intent对象传递给它。 与此类似,一个intent可以被调用组件传递给 context.bindservice以获取一个正在运行的目标服务的连接。这个服务会经由onbind 方法的调用获取这个intent对象(如果服务尚未启动,bindservice会先启动它)。比如说,一个activity可以连接至前述的音乐回放服务,并提供给用户一个可操作的(用户界面)以对回放进行控制。这个activity可以调用 bindservice 来建立连接,然后调用服务中定义的对象来影响回放。 后面一节:远程方法调用将更详细的阐明如何绑定至服务。 应用程序可以凭借将intent对象传递给 context.sendbroadcast ,context.sendorderedbroadcast, 以及context.sendstickybroadcast和其它类似方法来产生一个广播。android会调用所有对此广播有兴趣的广播接收器的 onreceive方法,将intent传递给它们。 欲了解更多intent消息的信息,请参阅独立章节 intent和intent滤过器。 关闭组件 内容提供者仅在响应contentresolver提出请求的时候激活。而一个广播接收器仅在响应广播信息的时候激活。所以,没有必要去显式的关闭这些组件。 而activity则不同,它提供了用户界面,并与用户进行会话。所以只要会话依然持续,哪怕对话过程暂时停顿,它都会一直保持激活状态。与此相似,服务也会在很长一段时间内保持运行。所以android为关闭activity和服务提供了一系列的方法。 可以通过调用它的finish方法来关闭一个activity。一个activity可以通过调用另外一个activity(它用startactivityforres lt 启动的)的finishactivity方法来关闭它。 服务可以通过调用它的stopself方法来停止,或者调用 context.stopservice。 系统也会在组件不再被使用的时候或者android需要为活动组件声明更多内存的时候关闭它。后面的 组件的生命周期一节,将对这种可能及附属情况进行更详细的讨论。 manifest文件 当android启动一个应用程序组件之前,它必须知道那个组件是存在的。所以,应用程序会在一个manifest文件中声明它的组件,这个文件会被打包到android包中。这个.apk文件还将涵括应用程序的代码、文件以及其它资源。 这个manifest文件以xml作为结构格式,而且对于所有应用程序,都叫做androidmanifest.xml。为声明一个应用程序组件,它还会做很多额外工作,比如指明应用程序所需链接到的库的名称(除了默认的android库之外)以及声明应用程序期望获得的各种权限。 但manifest文件的主要功能仍然是向android声明应用程序的组件。举例说明,一个activity可以如下声明: . . . 元素的name属性指定了实现了这个activity的 activity的子类。icon和label属性指向了包含展示给用户的此activity的图标和标签的资源文件。 其它组件也以类似的方法声明── 元素用于声明服务, 元素用于声明广播接收器,而 元素用于声明内容提供者。 manifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不会被运行。然而,广播接收器既可以在manifest文件中声明,也可以在代码中进行动态的创建,并以调用context.registerreceiver的方式注册至系统。 欲更多了解如何为你的应用程序构建manifest文件,请参阅androidmanifest.xml文件一章。 intent过滤器 intent对象可以被显式的指定目标组件。如果进行了这种指定,android会找到这个组件(依据manifest文件中的声明)并激活它。但如果intent没有进行显式的指定,android就必须为它找到对于intent来说最合适的组件。这个过程是通过比较intent对象和所有可能对象的intent过滤器完成的。组件的intent过滤器会告知android它所能处理的intent类型。如同其它相对于组件很重要的信息一样,这些是在manifest文件中进行声明的。这里是上面实例的一个扩展,其中加入了针对activity的两个intent过滤器声明: . . . 示例中的第一个过滤器──action "android.intent.action.main"和类别"android.intent.category.launcher"的组合──是通常具有的。它标明了这个activity将在应用程序加载器中显示,就是用户在设备上看到的可供加载的应用程序列表。换句话说,这个activity是应用程序的入口,是用户选择运行这个应用程序后所见到的第一个activity。 第二个过滤器声明了这个activity能被赋予一种特定类型的数据。 组件可以拥有任意数量的intent过滤器,每个都会声明一系列不同的能力。如果它没有包含任何过滤器,它将只能被显式声明了目标组件名称的intent激活。 对于在代码中创建并注册的广播接收器来说,intent过滤器将被直接以 intentfilter对象实例化。其它过滤器则在manifest文件中设置。 欲获得更多intent过滤器的信息,请参阅独立章节: intent和intent过滤器。 activity和任务 如前所述,一个activity可以启动另外一个,甚至包括与它不处于同一应用程序之中的。举个例子说,假设你想让用户看到某个地方的街道地图。而已经存在一个具有此功能的activity了,那么你的activity所需要做的工作就是把请求信息放到一个intent对象里面,并把它传递给startactivity。于是地图浏览器就会显示那个地图。而当用户按下back键的时候,你的activity又会再一次的显示在屏幕上。 对于用户来说,这看起来就像是地图浏览器是你activity所在的应用程序中的一个组成部分,其实它是在另外一个应用程序中定义,并运行在那个应用程序的进程之中的。android将这两个activity放在同一个任务中来维持一个完整的用户体验。简单的说,任务就是用户所体验到的"应用程序"。它是安排在一个堆栈中的一组相关的activity。堆栈中的根activity就是启动了这整个任务的那个──一般情况下,它就是用户在应用程序加载器中所选择的。而堆栈最上方的activity则是当前运行的──用户直接对其进行操作的。当一个activity启动另外一个的时候,新的activity就被压入堆栈,并成为当前运行的activity。而前一个activity仍保持在堆栈之中。当用户按下back键的时候,当前activity出栈,而前一个恢复为当前运行的activity。 堆栈中保存的其实是对象,所以如果发生了诸如需要多个地图浏览器的情况,就会使得一个任务中出现多个同一activity子类的实例同时存在,堆栈会为每个实例单独开辟一个入口。堆栈中的activity永远不会重排,只会压入或弹出。 任务其实就是activity的堆栈,而不是manifest文件中的一个类或者元素。所以你无法撇开activity而为一个任务设置一个值。而事实上整个任务使用的值是在根activity中设置的。比如说,下一节我们会谈及"任务的affinity",从affinity中读出的值将会设置到任务的根activity之中。 任务中的所有activity是作为一个整体进行移动的。整个的任务(即activity堆栈)可以移到前台,或退至后台。举个例子说,比如当前任务在堆栈中存有四个activity──三个在当前activity之下。当用户按下home键的时候,回到了应用程序加载器,然后选择了一个新的应用程序(也就是一个新任务)。则当前任务遁入后台,而新任务的根activity显示出来。然后,过了一小会儿,用户再次回到了应用程序加载器而又选择了前一个应用程序(上一个任务)。于是那个任务,带着它堆栈中所有的四个activity,再一次的到了前台。当用户按下back键的时候,屏幕不会显示出用户刚才离开的activity(上一个任务的根activity)。取而代之,当前任务的堆栈中最上面的activity被弹出,而同一任务中的上一个activity显示了出来。 上述的种种即是activity和任务的默认行为模式。但是有一些方法可以改变所有这一切。activity和任务的联系、任务中activity的行为方式都被启动那个activity的intent对象中设置的一系列标记和manifest文件中那个activity中的元素的系列属性之间的交互所控制。无论是请求发出者和回应者在这里都拥有话语权。 我们刚才所说的这些关键intent标记如下: flag_activity_new_task flag_activity_clear_top flag_activity_reset_task_if_needed flag_activity_single_top 而关键的属性是: taskaffinity la nchmode allowtaskreparenting cleartaskonla nch alwaysretaintaskstate finishontaskla nch 接下来的一节会描述这些标记以及属性的作用,它们是如何互相影响的,以及控制它们的使用时必须考虑到的因素。 affinity(吸引力)和新任务 默认情况下,一个应用程序中的activity相互之间会有一种affinity──也就是说,它们首选都归属于一个任务。然而,可以在元素中把每个activity的taskaffinity属性设置为一个独立的affinity。于是在不同的应用程序中定义的activity可以享有同一个affinity,或者在同一个应用程序中定义的activity有着不同的affinity。affinity在两种情况下生效:当加载activity的intent对象包含了flag_activity_new_task 标记,或者当activity的allowtaskreparenting属性设置为"tr e"。 flag_activity_new_task标记 如前所述,在默认情况下,一个新activity被另外一个调用了startactivity方法的activity载入了任务之中。并压入了调用者所在的堆栈。然而,如果传递给startactivity的intent对象包含了flag_activity_new_task标记,系统会为新activity安排另外一个任务。一般情况下,如同标记所暗示的那样,这会是一个新任务。然而,这并不是必然的。如果已经存在了一个与新activity有着同样affinity的任务,则activity会载入那个任务之中。如果没有,则启用新任务。 allowtaskreparenting 属性 如果一个activity将allowtaskreparenting属性设置为"tr e"。它就可以从初始的任务中转移到与其拥有同一个affinity并转向前台的任务之中。比如说,一个旅行应用程序中包含的预报所选城市的天气情况的activity。它与这个应用程序中其它的activity拥有同样的affinity(默认的affinity)而且允许重定父级。你的另一个activity启动了天气预报,于是它就会与这个activity共处与同一任务之中。然而,当那个旅行应用程序再次回到前台的时候,这个天气预报activity就会被再次安排到原先的任务之中并显示出来。 如果在用户的角度看来,一个.apk文件中包含了多于一个的"应用程序",你可能会想要为它们所辖的activity安排不一样的affinity。 加载模式 元素的la nchmode属性可以设置四种不同的加载模式: "standard" (默认值) "singletop" "singletask" "singleinstance" 这些模式之间的差异主要体现在四个方面: 哪个任务会把持对intent做出响应的activity。对"standard"和"singletop"模式而言,是产生intent(并调用 startactivity)的任务──除非intent对象包含flag_activity_new_task标记。而在这种情况下,如同上面affinitie和新任务一节所述,会是另外一个任务。 相反,对"singletask"和"singleinstance"模式而言,activity总是位于任务的根部。正是它们定义了一个任务,所以它们绝不会被载入到其它任务之中。 activity是否可以存在多个实例。一个"standard"或"singletop"的activity可以被多次初始化。它们可以归属于多个任务,而一个任务也可以拥有同一activity的多个实例。 相反,对"singletask"和"singleinstance"的activity被限定于只能有一个实例。因为这些activity都是任务的起源,这种限制意味着在一个设备中同一时间只允许存在一个任务的实例。 在实例所在的任务中是否会有别的activity。一个"singleinstance"模式的activity将会是它所在的任务中唯一的activity。如果它启动了别的activity,那个activity将会依据它自己的加载模式加载到其它的任务中去──如同在intent中设置了flag_activity_new_task 标记一样的效果。在其它方面,"singleinstance"模式的效果与"singletask"是一样的。 剩下的三种模式允许一个任务中出现多个activity。"singletask"模式的activity将是任务的根activity,但它可以启动别的activity并将它们置入所在的任务中。"standard"和"singletop"activity则可以在堆栈的任意位置出现。 是否要载入新的类实例以处理新的intent。对默认的"standard"模式来说,对于每个新intent都会创建一个新的实例以进行响应,每个实例仅处理一个intent。"singletop"模式下,如果activity位于目的任务堆栈的最上面,则重用目前现存的activity来处理新的intent。如果它不是在堆栈顶部,则不会发生重用。而是创建一个新实例来处理新的intent并将其推入堆栈。 举例来说,假设一个任务的堆栈由根activitya和activity b、c和位于堆栈顶部的d组成,即堆栈a-b-c-d。一个针对d类型的activity的intent抵达的时候,如果d是默认的"standard"加载模式,则创建并加载一个新的类实例,于是堆栈变为a-b-c-d-d。 然而,如果d的载入模式为"singletop",则现有的实例会对新intent进行处理(因为它位于堆栈顶部)而堆栈保持a-b-c-d的形态。 换言之,如果新抵达的intent是针对b类型的activity,则无论b的模式是"standard"还是"singletop" ,都会加载一个新的b的实例(因为b不位于堆栈的顶部),而堆栈的顺序变为a-b-c-d-b。 如前所述,"singletask"或"singleinstance"模式的activity永远不会存在多于一个实例。所以实例将处理所有新的intent。一个"singleinstance"模式的activity永远保持在堆栈的顶部(因为它是那个堆栈中唯一的一个activity),所以它一直坚守在处理intent的岗位上。然而,对一个"singletask"模式的activity来说,它上面可能有,也可能没有别的activity和它处于同一堆栈。在有的情况下,它就不在能够处理intent的位置上,则那个intent将被舍弃。(即便在intent被舍弃的情况下,它的抵达仍将使这个任务切换至前台,并一直保留) 当一个现存的activity被要求处理一个新的intent的时候,会调用onnewintent方法来将intent对象传递至activity。(启动activity的原始intent对象可以通过调用getintent方法获得。) 请注意,当一个新的activity实例被创建以处理新的intent的时候,用户总可以按下back键来回到前面的状态(回到前一个activity)。但当使用现存的activity来处理新intent的时候,用户是不能靠按下back键回到当这个新intent抵达之前的状态的。 想获得更多关于加载模式的内容,请参阅 元素的描述。 清理堆栈 如果用户离开一个任务很长一段时间,系统会清理该任务中除了根activity之外的所有activity。当用户再次回到这个任务的时候,除了只剩下初始化activity尚存之外,其余都跟用户上次离开它的时候一样。这样做的原因是:在一段时间之后,用户再次回到一个任务的时候,他们更期望放弃他们之前的所作所为,做些新的事情。 这些属于默认行为,另外,也存在一些activity的属性用以控制并改变这些行为: alwaysretaintaskstate 属性 如果一个任务的根activity中此属性设置为"tr e",则上述默认行为不会发生。任务将在很长的一段时间内保留它堆栈内的所有activity。 cleartaskonla nch属性 如果一个任务的根activity中此属性设置为"tr e",则每当用户离开这个任务和返回它的时候,堆栈都会被清空至只留下rootactivity。换句话说,这是alwaysretaintaskstate的另一个极端。哪怕仅是过了一小会儿,用户回到任务时,也是见到它的初始状态。 finishontaskla nch属性 这个属性与cleartaskonla nch属性相似,但它仅作用于单个的activity,而不是整个的task。而且它可以使任意activity都被清理,甚至根activity也不例外。当它设置为"tr e"的时候,此activity仅做为任务的一部分存在于当前回话中,一旦用户离开并再次回到这个任务,此activity将不复存在。 此外,还有别的方式从堆栈中移除一个activity。如果一个intent对象包含flag_activity_clear_top标记,而且目标任务的堆栈中已经存在了一个能够响应此intent的activity类型的实例。则这个实例之上的所有activity都将被清理以使它位于堆栈的顶部来对intent做出响应。如果此时指定的activity的加载模式为"standard",则它本身也会从堆栈中移除,并加载一个新的实例来处理到来的intent。这是因为加载模式为"standard"的activity总会创建一个新实例来处理新的intent。 flag_activity_clear_top与flag_activity_new_task经常合并使用。这时,这些标记提供了一种定位其它任务中现存的activity并将它们置于可以对intent做出响应的位置的方法。 启动任务 当一个activity被指定一个"android.intent.action.main"做为动作,以及"android.intent.category.launcher"做为类别的intent过滤器之后(在前述intent过滤器一节中已经有了这个示例),它就被设置为一个任务的入口点。这样的过滤器设置会在应用程序加载器中为此activity显示一个图标和标签,以供用户加载任务或加载之后在任意时间回到这个任务。 第二个能力相当重要:用户必须可以离开一个任务,并在一段时间后返回它。出于这个考虑,加载模式被设定为"singletask"和"singleinstance"的activity总是会初始化一个新任务,这样的activity仅能用于指定了一个main和launcher过滤器的情况之下。我们来举例说明如果没指定过滤器的情况下会发生的事情:一个intent加载了一个"singletask"的activity,初始化了一个新任务,用户在这个任务中花费了一些时间来完成工作。然后用户按下了home键。于是任务被要求转至后台并被主屏幕所掩盖。因为它并没有在应用程序加载器中显示图标,这将导致用户无法再返回它。 类似的困境也可由flag_activity_new_task标记引起。如果此标记使一个activity启动了一个新任务继而用户按下了home键离开了它,则用户必须要有一些方法再次回到这个任务。一些实体(诸如通知管理器)总是在另外的任务中启动新activity,而不是做为它们自己的一部分,所以它们总是将flag_activity_new_task标记包含在intent里面并传递给startactivity。如果你写了一个能被外部实体使用这个标记调用的activity,你必须注意要给用户留一个返回这个被外部实体启动的任务的方法。 当你不想让用户再次返回一个activity的情况下,可以将 元素的 finishontaskla nch设置为"tr e"。参见前述清理堆栈。. 进程和线程 当一个应用程序开始运行它的第一个组件时,android会为它启动一个lin x进程,并在其中执行一个单一的线程。默认情况下,应用程序所有的组件均在这个进程的这个线程中运行。 然而,你也可以安排组件在其他进程中运行,而且可以为任意进程衍生出其它线程。 进程 组件运行所在的进程由manifest文件所控制。组件元素-, , 和-都有一个 process 属性来指定组件应当运行于哪个进程之内。这些属性可以设置为使每个组件运行于它自己的进程之内,或一些组件共享一个进程而其余的组件不这么做。它们也可以设置为令不同应用程序的组件在一个进程中运行-使应用程序的组成部分共享同一个lin x用户id并赋以同样的权限。元素也有一个process属性,以设定所有组件的默认值。 所有的组件实例都位于特定进程的主线程内,而对这些组件的系统调用也将由那个线程进行分发。一般不会为每个实例创建线程。因此,某些方法总是运行在进程的主线程内,这些方法包括诸如view.onkeydown这样报告用户动作以及后面 组件生命周期一节所要讨论的生命周期通告的。这意味着组件在被系统调用的时候,不应该施行长时间的抑或阻塞的操作(诸如网络相关操作或是循环计算),因为这将阻塞同样位于这个进程的其它组件的运行。你应该如同下面线程一节所叙述的那样,为这些长时间操作衍生出一个单独的线程进行处理。 在可用内存不足而又有一个正在为用户进行服务的进程需要更多内存的时候,android有时候可能会关闭一个进程。而在这个进程中运行着的应用程序也因此被销毁。当再次出现需要它们进行处理的工作的时候,会为这些组件重新创建进程。 在决定结束哪个进程的时候,android会衡量它们对于用户的相对重要性。比如说,相对于一个仍有用户可见的activity的进程,它更有可能去关闭一个其activity已经不为用户所见的进程。也可以说,决定是否关闭一个进程主要依据在那个进程中运行的组件的状态。这些状态将在后续的一节组件生命周期中予以说明。 线程 尽管你可以把你的应用程序限制于一个单独的进程中,有时,你仍然需要衍生出一个线程以处理后台任务。因为用户界面必须非常及时的对用户操作做出响应,所以,控管activity的线程不应用于处理一些诸如网络下载之类的耗时操作。所有不能在瞬间完成的任务都应安排到不同的线程中去。 线程在代码中是以标准java thread对象创建的。android提供了很多便于管理线程的类: looper用于在一个线程中运行一个消息循环, handler用于处理消息,handlerthread 用于使用一个消息循环启用一个线程。 远程过程调用 android有一个轻量级的远程过程调用(rpc)机制:即在本地调用一个方法,但在远程(其它的进程中)进行处理,然后将结果返回调用者。这将方法调用及其附属的数据以系统可以理解的方式进行分离,并将其从本地进程和本地地址空间传送至远程过程和远程地址空间,并在那里重新装配并对调用做出反应。返回的结果将以相反的方向进行传递。android提供了完成这些工作所需的所有的代码,以使你可以集中精力来实现rpc接口本身。 rpc接口可以只包括方法。即便没有返回值,所有方法仍以同步的方式执行(本地方法阻塞直至远程方法结束)。 简单的说,这套机制是这样工作的:一开始,你用简单的idl(界面描绘语言)声明一个你想要实现的rpc接口。然后用 aidl 工具为这个声明生成一个java接口定义,这个定义必须对本地和远程进程都可见。它包含两个内部类,如下图所示: 内部类中有管理实现了你用idl声明的接口的远程方法调用所需要的所有代码。两个内部类均实现了 ibinder接口。一个用于系统在本地内部使用,你些的代码可以忽略它;另外一个,我们称为st b,扩展了binder类。除了实现了ipc调用的内部代码之外,它还包括了你声明的rpc接口中的方法的声明。你应该如上图所示的那样写一个st b的子类来实现这些方法。 一般情况下,远程过程是被一个服务所管理的(因为服务可以通知系统关于进程以及它连接到别的进程的信息)。它包含着 aidl工具产生的接口文件和实现了rpc方法的st b的子类。而客户端只需要包括aidl工具产生的接口文件。 下面将说明服务与其客户端之间的连接是如何建立的: 服务的客户端(位于本地)应该实现 onserviceconnected 和 onservicedisconnected 方法。这样,当至远程服务的连接成功建立或者断开的时候,它们会收到通知。这样它们就可以调用 bindservice 来设置连接。 而服务则应该实现 onbind 方法以接受或拒绝连接。这取决于它收到的intent(intent将传递给bindservice)。如果接受了连接,它会返回一个st b的子类的实例。 如果服务接受了连接,android将会调用客户端的onserviceconnected 方法,并传递给它一个ibinder对象,它是由服务所管理的st b的子类的代理。通过这个代理,客户端可以对远程服务进行调用。 线程安全方法 在一些情况下,你所实现的方法有可能会被多于一个的线程所调用,所以它们必须被写成线程安全的。 对于我们上一节所讨论的rpc机制中的可以被远程调用的方法来说,这是必须首先考虑的。如果针对一个ibinder对象中实现的方法的调用源自这个ibinder对象所在的进程时,这个方法将会在调用者的线程中执行。然而,如果这个调用源自其它的进程,则这个方法将会在一个线程池中选出的线程中运行,这个线程池由android加以管理,并与ibinder存在于同一进程内;这个方法不会在进程的主线程内执行。反过来说,一个服务的 onbind 方法应为服务进程的主线程所调用,而实现了由 onbind 返回的对象(比如说,一个实现了rpc方法的st b的子类)的方法将为池中的线程所调用。因为服务可以拥有多于一个的客户端,而同一时间,也会有多个池中的线程调用同一个ibinder方法。因此ibinder方法必须实现为线程安全的。 类似的,一个内容提供者能接受源自其它进程的请求数据。尽管contentresolver和contentprovider类隐藏了交互沟通过程的管理细节,contentprovider会由q ery, insert, delete, pdate和gettype方法来相应这些请求,而这些方法也都是由那个内容提供者的进程中所包涵的线程池提供的,而不是进程的主线程本身。所以这些有可能在同一时间被很多线程调用的方法也必须被实现为线程安全的。 组件生命周期 应用程序组件有其生命周期──由android初始化它们以相应intent直到这个实例被摧毁。在此之间,它们有时是激活的有时则相反。或者,如果它是一个activity,则是可为用户所见或者不能。这一节讨论了activity、服务以及广播接收器的生命周期,包括它们在生命周期中的状态、在状态之间转变时通知你的方法、以及当这些进程被关闭或实例被摧毁时,这些状态产生的效果。 activity生命周期 一个activity主要有三个状态: 当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的activity。 当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个activity。这个activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的activity仍对用户可见。暂停的activity仍然是存活状态(它保留着所有的状态和成员信息并连接至窗口管理器),但当系统处于极低内存的情况下,仍然可以杀死这个activity。 如果它完全被另一个activity覆盖是,它处于停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个activity。 如果一个activity处于暂停或停止状态,系统可以通过要求它结束(调用它的 finish 方法)或直接杀死它的进程来将它驱出内存。当它再次为用户可见的时候,它只能完全重新启动并恢复至以前的状态。 当一个activity从这个状态转变到另一个状态时,它被以下列protected方法所通知: void oncreate(b ndle savedinstancestate) void onstart void onrestart void onres me void onpa se void onstop void ondestroy 你可以重载所有这些方法以在状态改变时进行合适的工作。所有的activity都必须实现 oncreate 用以当对象第一次实例化时进行初始化设置。很多activity会实现 onpa se以提交数据变化或准备停止与用户的交互。 调用父类 所有activity生命周期方法的实现都必须先调用其父类的版本。比如说: protected void onpa se { s per.onpa se; . . .}总得来说,这七个方法定义了一个activity完整的生命周期。实现这些方法可以帮助你监察三个嵌套的生命周期循环: 一个activity 完整的生命周期 自第一次调用 oncreate开始,直至调用ondestroy为止。activity在oncreate中设置所有"全局"状态以完成初始化,而在ondestroy中释放所有系统资源。比如说,如果activity有一个线程在后台运行以从网络上下载数据,它会以 oncreate创建那个线程,而以 ondestroy销毁那个线程。 一个activity的 可视生命周期自 onstart 调用开始直到相应的 onstop调用。在此期间,用户可以在屏幕上看到此activity,尽管它也许并不是位于前台或者正在与用户做交互。在这两个方法中,你可以管控用来向用户显示这个activity的资源。比如说,你可以在onstart 中注册一个broadcastreceiver 来监控会影响到你ui的改变,而在onstop 中来取消注册,这时用户是无法看到你的程序显示的内容的。onstart 和 onstop 方法可以随着应用程序是否为用户可见而被多次调用。 一个activity的 前台生命周期 自 onres me 调用起,至相应的 onpa se调用为止。在此期间,activity位于前台最上面并与用户进行交互。activity会经常在暂停和恢复之间进行状态转换──比如说当设备转入休眠状态或有新的activity启动时,将调用onpa se 方法。当activity获得结果或者接收到新的intent的时候会调用onres me 方法。因此,在这两个方法中的代码应当是轻量级的。 下图展示了上述循环过程以及activity在这个过程之中历经的状态改变。着色的椭圆是activity可以经历的主要状态。矩形框代表了当activity在状态间发生改变的时候,你进行操作所要实现的回调方法。 下表详细描述了这些方法,并在activity的整个生命周期中定位了它们。 方法 描述 可被杀死 下一个 oncreate 在activity第一次被创建的时候调用。这里是你做所有初始化设置的地方──创建视图、绑定数据至列表等。如果曾经有状态记录(参阅后述saving activity state。),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数。 总继之以onstart。 否 onstart onrestart 在activity停止后,在再次启动之前被调用。 总继之以onstart。 否 onstart onstart 当activity正要变得为用户所见时被调用。 当activity转向前台时继以onres me,在activity变为隐藏时继以onstop。 否 onres me or onstop onres me 在activity开始与用户进行交互之前被调用。此时activity位于堆栈顶部,并接受用户输入。 继之以onpa se。 否 onpa se onpa se 当系统将要启动另一个activity时调用。此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费cpu的动作等。这一切动作应该在短时间内完成,因为下一个activity必须等到此方法返回后才会继续。 当activity重新回到前台是继以onres me。当activity变为用户不可见时继以onstop。 是 onres me or onstop onstop 当activity不再为用户可见时调用此方法。这可能发生在它被销毁或者另一个activity(可能是现存的或者是新的)回到运行状态并覆盖了它。 如果activity再次回到前台跟用户交互则继以onrestart,如果关闭activity则继以ondestroy。 是 onrestart or ondestroy ondestroy 在activity销毁前调用。这是activity接收的最后一个调用。这可能发生在activity结束(调用了它的 finish 方法)或者因为系统需要空间所以临时的销毁了此acitivity的实例时。你可以用isfinishing 方法来区分这两种情况。 是 nothing 请注意上表中可被杀死一列。它标示了在方法返回后,还没执行activity的其余代码的任意时间里,系统是否可以杀死包含此activity的进程。三个方法(onpa se、 onstop和ondestroy)被标记为"是"。onpa se是三个中的第一个,它也是唯个在进程被杀死之前必然会调用的方法──onstop 和 ondestroy 有可能不被执行。因此你应该用 onpa se 来将所有持久性数据(比如用户的编辑结果)写入存储之中。 在可被杀死一列中标记为"否"的方法在它们被调用时将保护activity所在的进程不会被杀死。所以只有在onpa se方法返回后到onres me 方法被调用时,一个activity才处于可被杀死的状态。在onpa se再次被调用并返回之前,它不会被系统杀死。 如后面一节进程和生命周期所述,即使是在这里技术上没有被定义为"可杀死"的activity仍然有可能被系统杀死──但这仅会发生在实在没有其它方法的极端情况之下。 保存activity状态 当系统而不是用户自己出于回收内存的考虑,关闭了一个activity之后。用户会期望当他再次回到那个activity的时候,它仍保持着上次离开时的样子。 为了获取activity被杀死前的状态,你应该为activity实现onsaveinstancestate 方法。android在activity有可能被销毁之前(即onpa se 调用之前)会调用此方法。它会将一个以名称-值对方式记录了activity动态状态的b ndle 对象传递给该方法。当activity再次启动时,这个b ndle会传递给oncreate方法和随着onstart方法调用的onrestoreinstancestate,所以它们两个都可以恢复捕获的状态。 与onpa se或先前讨论的其它方法不同,onsaveinstancestate 和 onrestoreinstancestate 并不是生命周期方法。它们并不是总会被调用。比如说,android会在activity易于被系统销毁之前调用 onsaveinstancestate,但用户动作(比如按下了back键)造成的销毁则不调用。在这种情况下,用户没打算再次回到这个activity,所以没有保存状态的必要。 因为onsaveinstancestate不是总被调用,所以你应该只用它来为activity保存一些临时的状态,而不能用来保存持久性数据。而是应该用onpa se来达到这个目的。 协调activity 当一个activity启动了另外一个的时候,它们都会经历生命周期变化。一个会暂停乃至停止,而另一个则启动。这种情况下,你可能需要协调好这些activity: 生命周期回调顺序是已经定义好的,尤其是在两个activity在同一个进程内的情况下: 调用当前activity的 onpa se 方法。 接着,顺序调用新启动activity的oncreate、 onstart和onres me方法。 然后,如果启动的activity不再于屏幕上可见,则调用它的onstop方法。 服务生命周期 服务以两种方式使用: 它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用context.startservice启动,而以调用context.stopservice结束。它可以调用service.stopself 或 service.stopselfres lt来自己停止。不论调用了多少次startservice方法,你只需要调用一次stopservice来停止服务。 它可以通过自己定义并暴露出来的接口进行程序操作。客户端建立一个到服务对象的连接,并通过那个连接来调用服务。连接以调用context.bindservice方法建立,以调用 context. nbindservice关闭。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindservice会先加载它。 这两种模式并不是完全分离的。你可以绑定至一个用 startservice启动的服务。比如说,一个后台音乐播放服务可以调用startservice并传递给它一个包含欲播放的音乐列表的intent对象来启动。不久,当用户想要对播放器进行控制或者查看当前播放曲目的详情时,会启用一个activity,调用bindservice连接到服务来完成操作。在这种情况下,直到绑定连接关闭stopservice 才会真正停止一个服务。 与activity一样,服务也有一系列你可以实现以用于监控其状态变化的生命周期方法。但相对于activity要少一些,只有三个,而且,它们是p blic属性,并非protected: void oncreate void onstart(intent intent) void ondestroy 倚仗实现这些方法,你监控服务的两个嵌套的生命周期循环: 服务的完整生命周期始于调用oncreate而终于ondestroy方法返回。如同activity一样,服务在oncreate里面进行它自己的初始化,而在ondestroy里面释放所有资源。比如说,一个音乐回放服务可以在oncreate中创建播放音乐的线程, 而在ondestroy中停止这个线程。 服务的活跃生命周期始于调用onstart。这个方法用于处理传递给startservice的intent对象。音乐服务会打开intent来探明将要播放哪首音乐,并开始播放。 服务停止时没有相应的回调方法──不存在onstop方法。 oncreate和ondestroy方法在所有服务中都会被调用,不论它们是由context.startservice还是由context.bindservice所启动的。而onstart仅会被startservice所启用的服务调用。 如果一个服务允许别的进程绑定,则它还会有以下额外的回调方法以供实现: ibinder onbind(intent intent) boolean onunbind(intent intent) void onrebind(intent intent) 传递给bindservice的intent的对象也会传递给onbind回调方法,而传递给 nbindservice的intent对象同样传递给onunbind。如果服务允许绑定,onbind将返回一个供客户端与服务进行交互的通讯渠道。如果有新的客户端连接至服务,则onunbind方法可以要求调用onrebind 。 下图描绘了服务的回调方法。尽管图中对由startservice 和startservice方法启动的服务做了区分,但要记住,不论一个服务是怎么启动的,它都可能允许客户端的连接,所以任何服务都可以接受onbind和onunbind调用。 广播接收器生命周期 广播接收器只有一个回调方法: void onreceive(context c rcontext, intent broadcastmsg) 当广播消息抵达接收器时,android调用它的onreceive 方法并将包含消息的intent对象传递给它。广播接收器仅在它执行这个方法时处于活跃状态。当onreceive返回后,它即为失活状态。 拥有一个活跃状态的广播接收器的进程被保护起来而不会被杀死。但仅拥有失活状态组件的进程则会在其它进程需要它所占有的内存的时候随时被杀掉。 这种方式引出了一个问题:如果响应一个广播信息需要很长的一段时间,我们一般会将其纳入一个衍生的线程中去完成,而不是在主线程内完成它,从而保证用户交互过程的流畅。如果onreceive衍生了一个线程并且返回,则包涵新线程在内的整个进程都被会判为失活状态(除非进程内的其它应用程序组件仍处于活跃状态),于是它就有可能被杀掉。这个问题的解决方法是令onreceive启动一个新服务,并用其完成任务,于是系统就会知道进程中仍然在处理着工作。 下一节中,我们会讨论更多进程易误杀的问题。 进程与生命周期 android系统会尽可能长的延续一个应用程序进程,但在内存过低的时候,仍然会不可避免需要移除旧的进程。为决定保留或移除一个进程,android将每个进程都放入一个"重要性层次"中,依据则是它其中运行着的组件及其状态。重要性最低的进程首先被消灭,然后是较低的,依此类推。重要性共分五层,依据重要性列表如下: 前台进程是用户操作所必须的。当满足如下任一条件时,进程被认为是处于前台的: 它运行着正在与用户交互的activity(activity对象的 onres me 方法已被调用)。 一个正在与用户交互的activity使用着它提供的一个服务。 它包含着一个正在执行生命周期回调方法(oncreate、onstart或ondestroy)的service对象。 它包含着一个正在执行 onreceive 方法的broadcastreceiver对象。 任一时间下,仅有少数进程会处于前台,仅当内存实在无法供给它们维持同时运行时才会被杀死。一般来说,在这种情况下,设备已然处于使用虚拟内存的状态,必须要杀死一些前台进程以用户界面保持响应。 可视进程没有前台组件,但仍可被用户在屏幕上所见。当满足如下任一条件时,进程被认为是可视的:、 它包含着一个不在前台,但仍然为用户可见的activity(它的onpa se方法被调用)。这种情况可能出现在以下情况:比如说,前台activity是一个对话框,而之前的activity位于其下并可以看到。 它包含了一个绑定至一个可视的activity的服务。 可视进程依然被视为是很重要的,非到不杀死它们便无法维持前台进程运行时,才会被杀死。 服务进程是由 startservice 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。 背景进程包含目前不为用户所见的activity(activity对象的 onstop 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程运行,所以它们一般存放于一个lru(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。 空进程不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。 android会依据进程中当前活跃组件的重要程度来尽可能高的估量一个进程的级别。比如说,如果一个进程中同时有一个服务和一个可视的activity,则进程会被判定为可视进程,而不是服务进程。 此外,一个进程的级别可能会由于其它进程依赖于它而升高。一个为其它进程提供服务的进程级别永远高于使用它服务的进程。比如说,如果a进程中的内容提供者为进程b中的客户端提供服务,或进程a中的服务为进程b中的组件所绑定,则a进程最低也会被视为与进程b拥有同样的重要性。 因为运行着一个服务的进程重要级别总高于一个背景activity。所以一个activity以启动一个服务的方式启动一个长时间运行过程比简单的衍生一个线程来进行处理要好。尤其是当处理过程比activity本身存在时间要长的情况之下。我们以背景音乐播放和上传一个相机拍摄的图片至网站上为例。使用服务则不论activity发生何事,都至少可以保证操作拥有"服务进程"的权限。如上一节广播接收器生命周期 所提到的,这也正是广播接收器使用服务,而不是使用线程来处理耗时任务的原因。


在旧中国,领养孩子是为了"传宗接代","祭祀祖先","养儿防老"。新中国也允许领养孩子,其目的是抚养和教育下一代。那么,什么是领养?怎样解除领养关系? 一、什么是领养? 我们通常所说的"领养",就是法律上的"收养",指通过合法手续,自愿把别人所生的子女,包括非婚生子女、孤儿,收作自己的子女来抚养。 养父母与养子女的关系虽不是由血缘关系而产生的,但是以双方自愿为原则,一经合法成立,就应视为血亲关系,受到法律的保护。按照我国现行法律的规定,养父母和养子女之间的权利和义务,与亲父母子女相同,双方均不得虐待和遗弃。养子女和亲生父母之间的权利和义务,因领养关系的成立而终结。 二、领养关系可以解除吗? 领养关系可以依法成立,也可以依法解除。在我国法律上,养父母与成年养子女关系恶化、无法共同生活的,是可以解除领养关系的。 三、怎样解除领养关系? 领养关系的解除,具体可通过以下两种方式解除: 1、依当事人的协议而解除领养关系。 协议解除领养关系的条件是: ①须当事人同意。 就领养方而言,须得养父母同意,就被领养方而言,养子女已成年时,经养子女同意即可;养子女没有成年的,须得养子女的生父母或原送养的监护人同意,养子女已有识别能力的,还须征得其本人的同意。 ②当事人须对财产生活问题已有适当处理,别无争议。 协议解除领养关系可按公证或登记程序办理。公证机关办理解除领养的程序,亦可以分为申请、审查、办证三个环节。当事人达成解除收养的决议后,须到户口所在地的公证机关提出解除收养的申请,并说明要求解除收养的理由。公证人员应对当事人要解除领养的原因及有关情况进行调查,以便查明解除收养是否出于当事人的真实意愿;要求解除领养的理由是否正当合理,有无其他意图;双方对财产和生活问题的处理是否合法等,经审查后,对符合解除领养条件的,就为其办理公证,准予解除。当事人自接到公证书之日起,收养关系即告终止。如果不符合协议解除领养关系的条件,不予办证,对有关纠纷,可建议当事人依诉讼程序提出请求。 基层政权机关或户籍部门办理解除领养的登记,也要对当事人的申请进行严格的审查,按照协议解除领养的条件,决定是否准予登记。 2、依当事人一方的要求而解除领养关系。 一方要求解除领养关系而另一方不同意的,或双方同意解除领养关系,但在财产和生活困难有争议的,一般由有关部门进行调解,亦可经诉讼程序由人民法院处理。人民法院审理收养案件,首先应对当事人进行调解,帮助当事人达成协议;调解无效时,依法判决。 人民法院处理解除领养关系的纠纷,应当坚持保护儿童和老人合法权益的原则,保护合法的收养关系,保障收养人和被收养人双方的利益,根据不同情况实事求是地妥善解决: ①养父母和生父母反悔,要求解除收养关系的,人民法院应查明情况,听取被收养人的意见,根据有利于子女健康成长的原则处理。 ②养父母不尽抚养义务,影响子女健康成长,生父母要求解除收养关系的,应予解除。 ③养父母与成年养子女关系的恶化,再继续共同生活对双方均为不利,一方坚决要求解除收养关系的,一般可准予解除。 ④养父母发现养子女有生理缺陷或者其他病症,要求解除收养关系的,一般不予解除。但生父母在送养时有意隐瞒的,可准予解除。 以上就是针对怎样解除领养关系问题的解答。领养关系解除后,养子女与养父母及其他近亲属关系即行消失,按理说养子女对养父母没有赡养义务。但是,我国的收养法有规定,领养关系解除后,经养父母抚养的成年养子女,对缺乏劳动能力又缺乏生活来源的养父母,应当给付生活费。


梦觉图像学091只有不断引起疼痛的东西,才不容易忘记关于战争的第三个图像主题是伤亡,这是图像对于战争最重要的功能。在战争中,比记录和宣扬胜利更重要的是为伤亡找到意义。胜利是短暂的、间歇的,战利品只有一小部分能分发到参与者手中,但伤亡是持久的、一直存在的,是个体要独自承担全部的伤痛。换句话说,战争的收益是被群体瓜分、且分配极不公平,而战争的损失则是由每个当事人全部承受。汽车厂商致力于制造旅行的意义,赞助那些在路上的见闻和得到,讲述心未动、身已远的美好。但它只是单向地传递利好的信息,无视成本和代价-汽车厂商没能处理车祸事故的意义。所以目前车还只能是一种工具,如果不能填补上车祸造成的伤亡的意义,它就无法成为一种生活方式的载体。死亡、失败都不是最可怕的,最让人恐惧的是连死都那么平庸。图像能赋予伤亡和痛苦一个华丽的反馈,它能展示破坏的力量,让每项生命体验都能找到对应的图像,无论胜利还是伤痛。图像的反面不是现实,而是无意义。043提到如何让一件平凡的事成为传奇,讲述它,一次次地讲述它。对待战争的伤亡,图像就是这么做的。希腊阿淮亚神庙东山墙《垂死的战士》(公元前490年)就是以一个独立的造像专注地表现一位受伤将死的希腊战士。没有事件的背景,没有敌我的对战,没有其他参照物,只有伤亡本身。他已经中箭倒地,双腿无法再站起,但左手扔握住盾牌支撑住上半身。这图像会联系起042提到《巴尼拔猎狮》浮雕中一只受伤的狮子,它身中三箭,其中一只箭从脊背射入贯穿肚腹,后腿已虚弱地拖在地上,但两前爪仍直撑着立起上身、昂起头,睚眦尽裂,张嘴怒吼。两幅图像都使用腿和上身一衰一强的对比,身体的濒危和精神力的唤醒之间的对比,内部的不一致构成伤亡者作为独立审美对象的条件,图像呈现出的是战斗中牺牲的高贵。《垂死的战士》这一图像范式在各个文明间传递,至基督教图像应用于"基督下十字架"主题,基督的腿是无力地耷落,但上身被圣母支撑起来,他延展的身体好似有几种力在共同作用着。再到1793年法国大革命时期的《马拉之死》也使用这一范式,尽管马拉在历史的评断中是激进的革命者也是施行血腥暴政的屠夫,但在《马拉之死》里被刺杀身亡的他,因图像的力量而呈现出希腊战士静穆的伟大和基督受难般的荣耀。马拉在图像史里留下了与文字历史不一样的记录。对于一个人的矛盾、是非与社会评议的变迁,有时候一幅图像比连篇累牍的记叙更经得起时间的推敲。再对比罗马的《拉奥孔和他的儿子们》(公元1世纪),描绘的是希腊和特洛伊战争中,特洛伊的祭司拉奥孔和儿子被海蛇缠绕绞杀的情形。不同于《垂死的战士》使用平直的线、舒缓地展开,力量是渐弱的;《拉奥孔和他的儿子们》全部使用s和z型曲线,就像被卷进台风或海潮里,线是互相缠绕的、彼此较劲的。这种对抗和蜷曲呈现出的是激愤和悲怆。濒死的拉奥孔是痛苦的,但图像使他的痛苦不平庸。这种图示在后来德拉克洛瓦的《希阿岛的屠杀》、《萨达纳帕拉之死》中被反复使用。从对比中看出图像对战争中的伤亡提出了两种不同的方案:一种是《垂死的战士》这种用平缓的直线、单独像、表面的平静和来自内部的矛盾来制造战士的高贵和死亡的荣誉;另一种是《拉奥孔和他的儿子们》这种把美好的东西撕碎给人看的激烈,用缠绕的曲线、大幅度的扭曲、外部的对抗来制造悲怆。前一种,死亡给了普通人以尊严;后一种,让人血脉喷张,切·格瓦拉对父亲说:"我的脚跟再一次挨到了罗西南特的肋骨,我挽着盾牌,重上征途。


学生问的问题,供大家复习时参考。 1、做的一些司考真题中有关于三资企业实施细则的考察,咱们这次考试还需要掌握这三个实施条例吗?在以后的司考中是不是还是需要掌握它们?这次考试不考这么细,但是你看一遍应该会对做题有帮助。司法考试肯定要考。 2、《合伙企业法》中,不得约定全部利润或亏损由部分合伙人承担,而有限合伙人的规定又有所例外,我不太明白这么规定的法理基础是什么,我觉得这样才能掌握这个法条。有限合伙人只承担出资义务,从不能干预经营这个角度想吧,既然无权则无责任。 3、劳动雇佣关系也属于经济法调整的范围吗?那它应该归属于哪个分类,是企业组织管理关系中的企业内部管理关系吗?广义上属于。但现在一般都归于民法,但是也有经济法学者研究劳动关系,比如王全兴教授。属于社会保障法律制度范畴。 4、关于上课时所讲的"社会主义市场经济和经济法"中,讲了市场失灵和政府缺陷。在漆多俊的《经济法基础理论》中,将经济法的分为三个组成部分,并分别与他总结的市场的三种类型缺陷对应:市场障碍-市场规制法、市场机制具有的唯利性造成某些经济领域民间投资不愿进入-国家投资经营法、市场调节的滞后性和被动性-宏观引导调控法。这里的分类和您讲的分类方式不一样,在答题时感觉分类标准不够确定很容易造成漏掉一些。有什么好的方法能将这些市场缺陷的表现全面的记住吗?都是各家之言,没有标准答案,大致能记住主要的就可以。当然记住越多越好,因为分类标准不一样,有些缺陷也不在一个层次上,没法比较。比如唯利性导致公共产品提供不足,其实说的是一个意思。 5 有本书将"豁免"解释为-在司法判决中个案予以确认的做法,更您在讲"豁免"和"适用除外"不同时对"豁免"的解释并不一样,我觉得都挺有道理的,应该怎样理解呢?我觉得说的是一样的。你再想想看。 6 在一道司考题中,说新闻单位受经营者唆使对其他经营者从事诋毁商誉的行为,不与经营者构成共同的不正当竞争行为;而在另外一道题中,由于a带着甲公司的商业秘密去乙公司上班,并将商业秘密泄漏给乙公司,结论是a与甲公司共同侵权,那这里算是共同构成不正当竞争习惯为吗?这两个案例中有什么不同的吗?为什么判定不同呢?其实不正当竞争的主体都应该是经营者,但是侵犯商业秘密的主体有可能是个人,所以在这一行为中没有特别强调主体,而是以行为构成的描述来作为判断标准。所以这个行为构成条件有一点特别。这个得死记硬背,没办法,你就记住这个特殊地方吧。 我还想问下,公司法的内容和市场准入制度列入考试范围吗?现在就这些问题了,麻烦老师了~谢谢老师啦!不考。


第3课 中国地质力学的奠基人李四光 二、教材分析与建议 1.知识结构 2.教材分析与建议 重点 李四光在科学研究上取得的杰出成就和对国家现代化建设的主要贡献。 难点 李四光能够成为中国科技界一面旗帜的主观与客观原因。 教材内容分析与建议 本课教材从三个方面向学生介绍我国现代杰出科学家李四光的主要生平:留学归来,报效祖国;为中国地质力学奠基;推动中国石油和其他矿产资源的开采。这些内容具体而扼要地介绍了李四光的学业和科研生涯,在科学研究方面的杰出成就和对现代化建设所做出的主要贡献,也蕴含着李四光能够成为中国科技界一面旗帜的主要原因。在我国正全力推进现代化的背景下,本课具有极强的现实意义;对青年学生的情操与人格教育而言,又具有潜移默化的作用。建议在教学中充分运用教材所提供的图文材料,还可适当补充一些能够体现李四光高尚人格、科学精神和个性特征方面的资料,帮助青年学生不但重视立志,更能为志向的实现而不懈努力。 本课引言介绍了一件曾极大地振奋民族精神的往事:李四光用独创的中国地质力学理论成功地指导了大庆等几个大油田的开发,驳倒了西方学者的"中国贫油论",为国家的经济建设做出了巨大贡献。建议教师在完成新课导入后(参见案例一),再指导学生阅读引文,并向学生提问。问题一:从引文看,李四光在科学理论上有什么重要创建?问题二:关于李四光的生平,你们还知道些什么?在学生回答第二问的过程中,进入新课学习。 第一目"留学归来,报效祖国" 教材以李四光先后留学日本与英国并学成归国,进入北京大学工作为线索,讲述了李四光少年时代、留日和留英三个时期的志向和学业情况,并通过"历史纵横"和"学思之窗",向学生展示了与李四光成长密切相关的时代背景与他的治学态度。 (1)留学日本,学习造船:为国造船 1889年10月,李四光出生在湖北省黄冈县一个贫寒的家庭里。当时,教私塾的父亲为他取名仲揆。1902年冬,小仲揆在填写武昌高等小学报名单时,误将姓名栏当成年龄栏,写了"十四"。他发觉后,便将"十"添上几笔改成了"李"字,可是"李四"这个名字不好,正为难时,抬头看见中堂上挂着的匾写着"光被四表",他灵机一动,在"李四"后加了一"光"字。从此,仲揆有了一个更响亮的名字:李四光。 1904年7月,李四光以优异成绩被破格选送到日本留学,经过三年普通科学习后,又于1907年以优异成绩考入大阪高等工业学校。早在童年时代,他就听父亲说过,由于中国的舰船不如日本,中国在甲午战争中吃了败仗。李四光选择了造船专业,并认真学习,立志学成后要为国家建造一流舰船,使中国不再遭受外国欺凌。1910年李四光毕业回国,次年在北京参加清政府的"游学毕业生考试",获"最优等"成绩,赐"工科进士",成为中国历史上最后一批进士之一。 留日期间,发生了一件对李四光人生影响极大的事。1905年,年仅16岁的李四光参加了孙中山筹组同盟会的活动,并宣誓加入同盟会,当时,孙中山抚摸着他的头说:你年纪这么小就要革命,很好,有志气。你"要努力向学,蔚为国用"。 这一部分内容是本目的学习重点,建议教师在引导学生阅读本目中"历史纵横"之一的基础上,由浅入深地讨论"李四光为什么选择造船专业"和"是哪些因素导致少年李四光有 努力向学,蔚为国用 的志向"这两个问题,以期让学生初步理解导致李四光作出这一选择背后的主观与客观因素。 (2)留学英国,改学地质:为国开矿 中华民国成立后,已出任湖北军政府实业部长的李四光因目睹袁世凯政府的黑暗统治,愤然辞职,决心留学英国读书。1913年10月,李四光入伯明翰大学留学,最初学习采矿。后来,他想到当时的中国,采矿实权都掌握在外国人手中,中国人只能任人摆布,就决定改学地质。李四光希望学成回国,让中国人也能开发自己的矿藏。 1920年,已获伯明翰大学自然科学硕士学位的李四光应蔡元培之聘请,回国成为北京大学地质系教授。从此开始了他终身的地质科学研究事业。 这一部分的教学可以在师生交流中完成。建议教师先提出"李四光留英时为什么选择地质专业?他在获得硕士学位后为什么一定要回国工作"这两个问题,让学生带着问题阅读包括"学思之窗"在内的相关内容并进行思考。在此基础上,教师再引导学生阅读"为中国地质力学奠基"一目中的"学思之窗",从而在整合相关知识的基础上形成"李四光为什么三次(1910年、1920年、1950年)均选择了回国"这一中心问题,进行讨论,得出初步结论。 第二目"为中国地质力学奠基" 教材主要介绍李四光对中国地质力学的卓越贡献,同时也概要地介绍了李四光在其他领域的科研成果。科学研究是非常艰苦的创造性工作,本目教材展示了李四光不迷信权威,"让事实说话"的科学精神与长期呕心沥血"为真理而奋斗"的献身精神。 (1)为中国地质力学奠基 地质力学是一门边缘科学,按李四光的说法,"它的一条腿站在地质学方面,另一条腿站在力学方面。反映地壳运动的一切现象是地质力学考察和研究的对象"。地质力学的研究对矿产的分布规律、工程地质、地震地质等方面问题的解决具有重要意义。 李四光为中国地质力学几乎贡献了毕生心血。自1920年回国后,李四光一面从事教学,一面致力于中国地质的研究。1927年起,应中央研究院蔡元培院长邀请,李四光主持地质研究所的筹建并出任所长,任职二十余年。即使在抗日战争的烽火中,他仍带领全所人员,从南京迁到庐山,又迁到桂林、贵阳等地,辗转数千公里,坚持地质科学的研究。正是在长期深入研究的基础上,李四光为中国地质力学奠定了坚实的基础。 1926年,他发表了《地球表面形象变迁的主因》一文。在这一著作中,李四光在吸收了当时国际先进地质学家思想营养的基础上,根据中国和东亚的地质构造特点,形成了中国的地质理论,并对大块大陆运动的方向性提出假说,这部著作成为李四光在地质力学萌芽时期的代表作。 1945年,李四光在《地质力学的基础与方法》一书中,率先将力学引入地质构造的分析,正式提出"地质力学"这个名词,地质力学理论始具雏形。1948年,李四光代表中国出席在伦敦举行的第18届国际地质大会,第一次应用他创立的地质力学理论,作了题为《新华夏海的起源》的学术报告,引起强烈反响。从此,地质力学这一新学科正式载入史册,李四光成为公认的地质力学奠基人。 1962年,李四光完成《地质力学概论》一书,这是他对自己40余年地质力学理论研究与实践经验的总结。此书成为地质力学的代表作,也是地质力学研究中的一个里程碑。 建议教师围绕"为中国地质力学奠基"这一主题,在引导学生阅读上一目中"历史纵横"之二的基础上,推出李四光的生平年表(参见案例三),以他的四部地质力学研究论著为基本线索,凸现他为科学研究不辞艰辛、四十多年呕心沥血"为真理而奋斗"的献身精神。 (2)在其他科学领域的研究成果 在其他科学领域,李四光也取得了举世瞩目的研究成果: 古生物学研究方面,李四光在1920年回国后,陆续采集了大量科化石标本,对其进行深入研究,连""字也是李四光所创,并被我国古生物学家沿用至今。(ting亭),有昆虫化石的一类,壳为石灰质,多呈纺锤型。通过对的种属鉴定,可以较为准确地划分含煤的石炭二叠纪地层的先后顺序,为寻找和开发煤炭资源提供依据。在研究过程中,由于深感描述与鉴定的烦琐,李四光创立了10条鉴定标准,提高了鉴定的科学性和准确性,这一标准被中外古生物学家普遍采用。 在冰川学研究方面,李四光最重要的成果是确定了中国第四纪冰川的存在,并最终得到国际学术界的公认。冰川分布是研究地质构造的重要依据,"第四纪冰川"是在地球最新的一个地质年代内,大部分地区多次发生的冰川活动的总称。当时,有些外国人在对中国进行考察后断言"中国没有第四纪冰川"。1921年,李四光在太行山东麓首次发现第四纪冰川,却遭到一些外国专家的否定。李四光提出"让事实说话",在长江中下游和华南地区,开展进一步调查,收集到更多证据。1933年,李四光请中外学者到庐山实地考察;1936年,李四光发表《安徽黄山之第四纪冰川现象》,最终推翻了外国人的错误结论。中国第四纪冰川的确立,是我国第四纪地层学和气候学研究上的一个里程碑,它对寻找地下水资源、砂金矿床、选定工程建设场址,都有重要指导作用。新中国成立后,李四光亲自组织指导冰川专业人员开赴西南地区,运用其研究成果为成昆铁路选线、攀枝花钢厂选址等重大工程服务。 建议教师在这一部分内容教学中要深入浅出,让学生明确其研究的价值即可,要注意把教学重心放在凸现李四光不迷信权威,"让事实说话"的科学精神上。 第三目"推动中国石油和其他矿产资源的开采" 教材着重介绍李四光为我国甩掉"贫油"帽子所建立的不可磨灭的功勋;此外,以相当简约的笔墨介绍了李四光为我国核能事业的发展与地震预报的探索等方面所做出的突出贡献。 (1)推翻洋人"中国贫油"的断言 自19世纪下半期第二次工业革命以来,石油成为人类最重要的能源之一,被称为工业的血液。在20世纪前期,以美国为代表的西方国家,为了掠夺中国的矿产资源,曾派遣一批批专家学者来中国勘察和了解矿产的蕴藏情况。一战期间,美国美孚石油公司组织的一支打井队,曾在他们认为最有希望找到石油的陕北一连打了七口探井却一无所获;还有其他一些外国人,也在中国的土地上到处找油,同样是两手空空。于是,他们得出了"中国贫油"的结论。 新中国大规模的经济建设开始后遇到了石油短缺的困难。当时我国只有几个小油井,年产原油约12万吨,全国所需石油80%至90%都依靠进口。1953年底,毛泽东、周恩来把李四光请到中南海。毛泽东问李四光:"有人说 中国贫油 ,你对这个问题怎么看呢?如果中国真的贫油,要不要走人工合成石油的道路?" 早在30年代,李四光就预言中国东部新华夏系沉降带中蕴藏着丰富的石油资源。面对毛泽东的垂询,李四光分析了我国的地质条件,明确说明新华夏体系的沉降带既生油又储油,中国的陆地一定有石油。毛泽东、周恩来在认真听取了汇报后,支持他的观点,并根据他的建议,组织力量在松辽平原、华北平原进行大规模的石油普查。不到十年,相继找到了大庆、华北等大油田。这样,不仅摘掉了中国"贫油"的帽子,也有力地证明了李四光独创的地质力学理论。1964年,周恩来总理在人大政府工作报告中指出,"大庆油田,是根据我国地质学家独创的石油地质理论进行勘探而发现的。" (2)为发展我国核能事业做出贡献 李四光还以地质力学理论为指导,为我国的核能事业发展做出了突出贡献。李四光早就预见到新中国的国防和经济建设需要铀矿资源,回国时克服重重困难带回了一台伽玛仪,这为后来寻找铀矿发挥了重要作用。1955年初,毛泽东主持召开中央书记处扩大会议,研究发展核能事业的问题,拉开了我国核能事业的序幕。在这次会议上,身为原子能委员会主席的李四光和钱三强等一起作了工作汇报。在50-60年代,李四光一直关心着铀矿地质的开展,多次听取找铀队伍汇报,进行指导。到"二五"末期,我国已发现一系列铀矿床,铀产量已能保证我国核工业发展的需要。 (3)进行地震预报的探索 1966年3月,河北省邢台地区发生强烈地震,给人民的生命财产造成极大灾难。除了两次亲临震区,周恩来总理还召集了探讨地震预报的专题会议。 地震预报在当时是一个有待解决的世界性难题。面对总理的垂询,已经开始关注这一问题的李四光明确回答,只要注意对断裂带的研究,摸清其中哪些地段还有活动,并设置必要的观测网进行监测,再参考我国历代文献中丰富的地震资料,是可以对地震作出预报的。为了能够探索预报规律,李四光不顾高龄,深入邢台震区进行考察和研究,开创了活动构造研究与地应力观测相结合的预报地震的途径。后来,李四光曾对辽宁营口等地的地震提出了预见。事实证明,这些预见是正确的。因此,虽然李四光还没来得及对地震预报问题作出更深入的研究就与世长辞,但他的研究成果已饮誉海内外。 1971年4月,李四光因病抢救无效逝世,这盏"光被四表"的科学明灯熄灭了! 在学习本目内容时,建议教师先指导学生阅读相关内容,并寻找出若干个不同领域的"关键词"(参见案例四),使学生能整体地了解李四光对现代化建设的贡献。在此基础上可选择其中的一个领域稍作展开。如可以引导学生联系本课的引言和本目的"历史纵横"部分,了解"中国贫油论"的来历与新中国建国初期严重的石油短缺情况,理解新中国摘掉"贫油"帽子的重大意义,理解地质力学理论的独特贡献与李四光急国家之所急、将研究成果服务于祖国与人民的崇高精神。至于在其他领域的贡献,可以让学生通过自学掌握。 教材的最后一节 分三个层次对李四光作了总结性评价。学术地位:我国杰出的地质学家、地质力学的创建者、新中国地质事业的开拓者和奠基人;人格特征:他把一生都献给科学事业,献给祖国和人民。他早年立下报国之志,以国家强大、开发祖国地下宝藏为己任。他有强烈的民族自尊心和自信心;总体评价:以杰出的成就为中国科学工作者树立了光辉的榜样,在中国科学发展史上具有不可替代的位置。对此,周恩来曾特别指出,"李四光是一面旗帜,对社会主义建设做出了很大贡献"。 正因为如此,李四光作为40位中华文化名人之一"落户"在中华世纪坛,在这个"国家先贤祠"里,供全国人民瞻仰纪念;他的一帧帧画像,也走进了我国的中小学校,成为千百万青少年的前进路标。 这部分内容的教学,建议教师再次推出李四光生平年表,抓住李四光的三次归国选择、历时40年的地质力学研究等重点内容,指导学生从总体上回顾本节课的主要内容,并以"论从史出"为基本指导思想,得出自己的认识。 三、教学设计与案例 1.教学设计 留学归来,报效祖国一目。为了帮助学生理解李四光作出这一选择的主客观原因,教师要设计好问题链(参见案例二)并重视呈现技术。在这个过程中需要注意,充分利用教材提供的各种资料,引导学生展开讨论。如第一问"李四光留学日本时为什么选择造船专业",就不但要让学生关注教材的正文部分,还要引导学生研讨教材提供的"历史纵横",从而明白,李四光的少年时代恰逢中国在甲午战争中战败,中华民族在面临亡国灭种危机的同时也萌发了各种救国思潮;李四光受到了父亲、孙中山等人的教导与勉励。又如第五问"是哪些主观与客观因素使李四光对祖国如此忠诚",不但要让学生关注本目内容,也要关注第二目中的"学思之窗"。如果有条件,还可以将李四光在1950年的归国放在当时华罗庚、钱学森大批爱国学者纷纷归国这一背景下加以考察:" 梁园虽好,非久居之乡 ,归去来兮";"为了抉择真理,我们应当回去;为了国家民族,我们应当回去;...就是为了个人出路,也应当早日回去",绝不仅仅是华罗庚于1950年2月归国途中的心声。 为中国地质力学奠基一目。教师不但要帮助学生了解李四光在地质力学等领域的卓越贡献,还要帮助学生理解李四光能取得如此成就的主观原因。因此,可以在引导学生阅读第一目"历史纵横"之二,让学生了解李四光治学态度的基础上,逐步推出"李四光生平年表"(参见案例三),其中部分内容可以让学生完成,以此凸现李四光为创建地质力学而呕心沥血四十多年这一事实。关于李四光对第四纪冰川的研究,教师要引导学生注意到李四光经过十多年的艰辛研究,才最终推翻了外国人的错误结论。为此可适当补充一些细节,让学生了解李四光"让事实说话"的科学精神。 推动中国石油和其他矿产资源的开采一目。需要学生掌握两个层次:一是李四光对国家现代化建设的主要贡献,二是李四光急国家与人民之所急的崇高精神。前者的教学可通过让学生寻找关键词的方式(参见案例四)进行;后者的教学,教师要注意引导学生阅读本目中的"历史纵横",再向学生提问,李四光为什么在建国初期如此重视石油的勘探问题?在其晚年又为什么重视地震预测问题?引导学生得出结论:李四光急国家之所急,想人民之所想,将科学成果服务于祖国与人民。 2.教学案例 案例一 导入可用逐条展示"关键词"的方式进行,当学生猜出是李四光时即转入新课。以下"关键词"可供参考: 中国第一首小提琴曲《行路难》的谱写者; 其雕塑和孔子、鲁迅等中华名人一起"落户"在中华世纪坛,供全国人民纪念; 曾是前清进士、同盟会会员、共产党员、中国科学院副院长; 是中国地质力学的创建人; 把"中国贫油论"的帽子甩进了太平洋,他是... 注:1920年李四光应留法勤工俭学同学会之邀前往巴黎。在活动的间隙,他以小提琴独奏形式,谱写了《行路难》,鲜明地抒发了一代知识分子在旧中国黑暗的社会环境中挣扎求索、追求光明的人生历程。中国第一首小提琴曲就这样诞生了。1999年北京大学举行纪念五四运动音乐会,正是以这首《行路难》作为序曲:"行路难,行路难,多歧路,今安在?长风破浪会有时,直挂云帆济沧海!" 案例二 讲留学归来,报效祖国时,可设计成问题链并依次呈现,引导学生由浅入深地探讨李四光为什么选择归国报效祖国这一问题: (1)李四光留学日本时为什么选择造船专业?是哪些因素导致少年李四光有"努力向学,蔚为国用"的志向? (2)李四光留学英国时为什么选择地质专业?他在获得硕士学位后为什么一定要回国工作? (3)1950年春,李四光为什么又一次选择回国? (4)李四光三次均选择了回国。是哪些主观与客观因素使他对祖国如此忠诚? 案例三 讲为中国地质力学奠基时,可推出李四光生平年表(其中部分内容由学生逐步完成),以此直观地凸现李四光为创建地质力学呕心沥血四十多年的献身精神: 李四光生平年表 案例四 讲推动中国石油和其他矿产资源的开采时,可请学生进行同桌商讨,找出若干个不同领域的"关键词",帮助学生较准确地理解李四光对现代化建设的贡献:石油勘探、铀矿资源、地震预测。 案例五 小结可分三个层次进行: 首先是结合李四光生平年表回顾其主要贡献;其次是请一位学生朗诵《行路难》(有条件的话,可以放李四光谱写的小提琴曲《行路难》);最后是请学生讨论并概括(如果没有时间可以让学生在课后思考)李四光在"多歧路"的人生中,能"直挂云帆济沧海"的主观因素(如从小立志;为科学献身;重视实践;不迷信权威等)。 四、问题解答 【学思之窗】 1.李四光为什么一定要回国工作? 解题关键:李四光认为自己应当为祖国服务,当时中国的地质科学也迫切需要专门人才。 思路引领:李四光决意回国工作是由当时的主观和客观条件决定的。 答案提示:李四光在少年时代就立下"努力向学,蔚为国用"的志向。他去英国学习的本意就是让国人也能开发自己的矿藏。获得伯明翰大学自然科学硕士学位后,虽然有机会在国外工作,并有优厚待遇,但当时中国的地质科学发展正处于初创时期,迫切需要大量专门人才,李四光想到自己是中国人,应当将自己的所学为祖国服务,因此毅然踏上归国之路。 2.当时,李四光全家都在英国,他为什么又一次回来了? 解题关键:李四光的"科学救国"之梦,在国民政府统治时期屡屡受挫,新中国的成立让他看到了科学发展、国家复兴的希望,因此他又一次回来了。 思路引领:李四光决定回国为新中国服务,是因为他对中国共产党寄予厚望。 答案提示:李四光学成归国后曾长期致力于地球科学的研究,并在国内外获得了很高声誉。但由于国民党的腐败和长期战乱,他的科学救国理想无法实现,所以对国民党政府十分失望,与此同时,他看到中国共产党为中华民族前途执着奋斗,对此寄予厚望。新中国的成立,使李四光感到科学发展、国家复兴有望,就克服重重困难,决定回国,全力投入国家的现代化建设。 【探究学习总结】 (一)本课测评 1.李四光在科学研究上取得了哪些杰出成就? 解题关键:李四光在科学研究上的杰出成就有:创建地质力学;发现中国第四纪冰川;创立科化石鉴定标准。 思路引领:理解"科学研究"这一关键词;李四光把一生都献给了地球科学研究事业。 答案提示:李四光自1920年从英国学成归国,毕生研究地球科学。他勤奋好学,注重实践,学识渊博,取得了多方面的杰出成就,其中最重要的是创建了具有世界影响的地质力学。运用这一理论,李四光对现代地壳运动的分析、对矿产资源的探寻、地震预报,都提出了自己的独特见解,并经受了实践的检验。除此以外,他还是中国第四纪冰川的发现者,对科化石的研究也有特殊贡献。 2.李四光为我国现代化建设做出了哪些突出贡献? 解题关键:李四光对现代化建设的突出贡献有:找到了急缺的石油资源;发现了一系列铀矿床;探索地震预报。 思路引领:理解"现代化建设"这一关键词;李四光从事科学研究的主要目的就是报效祖国。新中国建立后,李四光急国家之所急,将自己的科研成果运用于现代化建设。 答案提示:1950年,李四光克服重重困难回到祖国后,就急国家之所急,运用自己的科学研究成果,为现代化建设服务,并取得了多方面的成就,其中最重要的就是运用其独创的地质力学理论,提出一整套寻找石油的理论与方法。我国勘探部门据此相继找到了大庆、大港、胜利等大油田,使中国一举摘掉"贫油"帽子,为国家经济建设提供了能源保障。李四光还以地质力学理论为指导,寻找铀矿资源,为发展我国核能事业做出了贡献;他还运用这一理论,对地震预报工作展开了有效研究。 (二)学习延伸 1.探究活动(略) 2.阅读与思考 这里所说的两个方面,李四光是怎样实践的?你怎样评价他的一生? 解题关键:李四光将一生奉献给科学,同时又急国家之所急,将科学研究成果服务于现代化建设。李四光既是科技界的一面旗帜,也是青年学生的人生楷模。 思路引领:"两个方面"分别是指基础性的科学理论研究与直接为国民经济建设服务的应用性研究。评价应当全面、客观,也是开放性的。 答案提示:李四光一生中,一方面在基础科学理论方面取得重大成就,另一方面又根据国家建设与人民的需要,将理论成果直接服务于国家与人民。自1920年从英国学成归国后,他将毕生的精力投入地球科学研究,并创立具有世界影响的独立学派地质力学。他在冰川学、科化石的鉴定等领域也有独特建树。新中国成立后,他运用地质力学理论服务于国家的现代化建设。并急国家之所急,把主要的研究重心放在寻找国家急缺的矿产资源上,成功地指导了寻找大庆等大油田和铀矿资源的工作。从20世纪60年代开始,他又根据防震减灾的需要,在地震预报方面做了大量探索,取得明显进展。 李四光把自己的一生奉献给了科学,奉献给了祖国,奉献给了人民。李四光不迷信外国权威、让事实说话的科学精神与杰出成就,为中国科学工作者树立了光辉榜样;李四光"努力向学,蔚为国用"的志向和强烈的民族自尊心与自信心,也是青年学生的人生楷模。 五、资料与注释 1.原始资料 "中国贫油"论 关于中国石油资源的远景,在50年代以前,不少地质学家抱着悲观的看法。1915-1917年,美孚石油公司的克拉普(f.c.clapp,中国名字叫马栋臣)和菲尔勒(m.l.f ller,中国名字叫王国栋),率领一个钻井队,在陕北肤施一带,打了七口深井,花了三百万美元,因收获不大走掉了。1922年,美国斯坦福大学教授布莱克威尔德来中国调查地质,回去写了《中国和西伯利亚的石油资源》一文,发表在《美国矿冶工程师学会会报》上,提出了"中国贫油"的论点。他的文章归纳了三个原因,大意是:中国的中新生代缺乏海相沉积;古生界又是不含油的类型;除西藏、西北某些地区外,各时代地层都遭到了强烈的褶皱、断裂以及火成岩的侵入。于是他断言:"中国东南部找到石油的可能性不大;西南部找到石油的可能性更是遥远;西北部不会成为一个重要的油田;东北地区不会有大量的石油。"从此,"中国贫油"论就流传开来。 ──陈群、张祥光、周国钧、段万倜、黄孝葵:《李四光传》,人民教育出版社1984年版 5.参考资料目录 王恒礼、王子贤、李仲均编著:《中国地质人名录》,中国地质大学出版社1989年版。 陈群、张祥光、周国钧、段万倜、黄孝葵:《李四光传》,人民教育出版社1984年版。 李四光着:《穿过地平线》,百花文艺出版社1998年版。 李四光:《论地震》,地质出版社1977年版。


大量临床实践数据证明精神分裂具有遗传倾向,这就导致许多适婚年龄的精神分裂患者都在担心自己或配偶的精神分裂症是否会遗传的问题。 精神分裂症患者会遗传吗?武汉国粹中医专家分析: 1、根据调查,精神分裂的患者非常多,且情形较严重,在16岁到40岁之间,140人中就有1人是精神分裂患者;以大学医学院来说,一个年级40人中有1人是精神分裂者,虽然已经有良好的医药发明,医好了不少人,但在精神病院中,大约七至八成仍是精神分裂患者,还有一些人甚至在医院终此一生。 2、虽然有些精神病属于遗传性,但遗传的方法非常不规则,根据专家的研究,精神分裂病不只一种,可分为好几型,每一类型的遗传皆不同,因此即使这个家族的祖先或亲戚没有精神分裂病人的先例,但这家庭仍可能会有精神分裂的患者,所以无法确定其无精神病的遗传,不过经调查后显示,近亲曾有精神分裂情形时,家族中患精神病的比例较他人为高,而精神病人所生的孩子,大约6人中有1人也会是精神分裂症患者,兄弟姐妹间9人中也会有1人患精神分裂症。 3、我们经常以双胞胎为实例,研究精神病和遗传的关系,检查结果若同卵双胞胎其中之一有精神病,则另一人的很病率约80%;若是异卵双胞胎则仅有13%而已,这是因为同卵双胞胎的遗传因子组合相同,所以患同样的遗传性疾病的机率高,而调查结果也证明他们遗传性强;而另一方面,他们中的另一个虽有相同的遗传因子,但却有20%的机会不患病,这也证明环境本身可以预防疾病,事实上双胞胎之一大都属外因性,而健康的一位则没有这个外因。 4、如果父母患有精神分裂症,而孩子又和生病的父母一起生活,那么这些孩子也很容易患有精神分裂,小孩如果离开父母到另一环境长大,患精神病的比率会降低,所以与其说个性遗传所致,还不如说由生长的环境来左右还恰当些,如家中有精神分裂的遗传因素,在养育孩子时要特别注意,尽量使他们的性格活泼开朗,避免强迫他升学考试,如此才可防止精神分裂症的产生。 因此,遗传因素是精神分裂症发病的重要因素之一,但不存在必然关系。血缘关系越近遗传因素影响越大,但并不是所有精神分裂都一定会遗传。 武汉国粹中医馆"鬼门十三针"+秘制中药治疗精神类疾病 研究发现,精神疾病主要是由脑神经递质紊乱所致,明确具体病因是治病的关键。首先进行详细的问诊明确具体的病因,根据每位患者的具体情况制定针对性的治疗方案,武汉国粹中医馆的"鬼门十三针"是中医治疗精神病的一大创新、突破,配合秘制中药舒筋通络、醒脑安神、平衡阴阳,三步疗法的结合在治疗失眠头痛、抑郁、焦虑、强迫、神经衰弱、精神分裂症方面有着独特而显著的疗效。 武汉国粹中医专家温馨提醒:由于每个人的体质差异,精神分裂的实际临床表现常常复杂得多,应具体问题具体分析,及时到正规医院接受科学治疗。