每日热点 mrrd.net
  • 查看
首页 > 百度-每日时事热点
本条热点详情
  • 标题: 小区将配建食堂 两部门发文
  • 版权说明:以下为热点快照,如果侵犯您的权利,请联系我们删除,谢谢!sendtous#qq.com
  • 小区将配建食堂!两部门最新发文
    作者:潇湘晨报
    发布时间:2022-11-02 12:29
    快照:

    10月31日,住建部、民政部联合发布《关于开展完整社区建设试点工作的通知》。其中显示,各市(区)应选取3至5个社区开展完整社区建设试点,试点时间自2022年10月开始,为期2年。通知表示, 试点社区应规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站 ,还将配建食堂、家政服务网点等便民商业服务设施。

    根据今年1月住建部发布的《完整居住社区建设指南》,完整社区指的是在居民适宜步行范围内有完善的基本公共服务设施、健全的便民商业服务设施、完备的市政配套基础设施、充足的公共活动空间、全覆盖的物业管理和健全的社区管理机制,且居民归属感、认同感较强的居住社区。

    那么完整社区试点应该如何建设?《通知》表示,试点社区应规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站。每百户居民拥有综合服务设施面积不低于30平方米,60%以上建筑面积用于居民活动。另外,试点社区应适应居民日常生活需求,配建便利店、菜店、食堂、邮件和快件寄递服务设施、理发店、洗衣店、药店、维修点、家政服务网点等便民商业服务设施。

    与此同时,新建社区要依托社区综合服务设施,集中布局、综合配建各类社区服务设施,为居民提供一站式服务。既有社区可结合实际确定设施建设标准和形式,通过补建、购置、置换、租赁、改造等方式补齐短板。此外,各地应统筹若干个完整社区构建活力街区,配建中小学、养老院、社区医院等设施,与15分钟生活圈相衔接,为居民提供更加完善的公共服务。

    在打造宜居生活环境方面,试点社区应结合城镇老旧小区改造、城市燃气管道老化更新改造等工作,加强供水、排水、供电、道路、供气、供热(集中供热地区)、安防、停车及充电、慢行系统、无障碍和环境卫生等基础设施改造建设。此外,《通知》鼓励具备条件的社区建设电动自行车集中停放和充电场所,同时推进社区适老化、适儿化改造,鼓励在社区公园、闲置空地和楼群间布局简易的健身场地设施,开辟健身休闲运动场所。

    在推进智能化服务方面,《通知》提出试点社区应建设智慧物业管理服务平台,推进智慧物业管理服务平台与城市运行管理服务平台、智能家庭终端互联互通和融合应用,提供一体化管理和服务。同时,试点社区应整合家政保洁、养老托育等社区到家服务,链接社区周边生活性服务业资源,建设便民惠民智慧生活服务圈。

    【来源:观邯郸】

    声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 邮箱地址:newmedia@xxcb.cn

    举报/反馈

  • 小区将配建食堂两部门发文 为期两年试点 新加坡几乎每个小区都有
    作者:直来职去
    发布时间:2022-11-02 17:04
    快照:

    小区将配建食堂两部门发文,各市(区)开展完整社区建设试点,试点为期2年,从2022年10月开始。

    其实这个完整社区建设试点,不仅仅包括建设食堂,还包括幼儿园、托儿所、老年服务站、社区卫生服务站、家政服务网点等综合服务设施,不过前期是从三到五个社区开始试点,并非全面铺开。

    很多人支持,但同样也有不少人担忧,觉得会对很多实体店冲击很大。其实我们完全可以看看新加坡的例子,新加坡几乎每个小区都有社区食堂,而且他们基本不在家做饭,社区食堂物价也比较便宜。为大众省了不少,又提供了安全的食品保障,方便大众。

    你支持吗?

    举报/反馈

  • 小区将配建食堂 两部门发文 本月开始试点 为期两年
    作者:直来职去
    发布时间:2022-11-02 13:22
    快照:

    小区将配建食堂 两部门发文,各市(区)应选取3至5个社区开展完整社区建设试点,其中特别强调要配建食堂,本月开始试点,为期两年。

    加上供销社回归,这回小区要开始建食堂了,很多人会觉得这对市场冲击很大,特别对很多实体店有影响,甚至觉得难道这是要回到计划年代了吗?

    其实小区建食堂,和扩张供销社是挺好的事情,因为小区还会同步还要建设幼儿园、托儿所、老年服务站等便民服务场所。

    不管是市场还是计划,只要让大众得到便利就是好措施,应该支持。

    :

    举报/反馈

  • 小区将配建食堂、社区卫生服务站等!两部门最新发文
    作者:凤凰网房产
    发布时间:2022-11-02 09:31
    快照:

    来源: 凤凰网房产石家庄站

    10月31日,住建部、民政部联合发布《关于开展完整社区建设试点工作的通知》(以下简称《通知》)。

    《通知》要求,各省级住房和城乡建设、民政部门要会同有关部门建立协同机制,结合城镇老旧小区、老旧街区、城中村改造等工作,统筹推动完整社区建设试点,因地制宜探索建设方法、创新建设模式、完善建设标准,以点带面提升完整社区覆盖率。

    组织本地区每个城市(区)选取3至5个社区开展完整社区建设试点,编制试点工作方案,明确试点目标、试点内容、重点项目、实施时序和保障措施等。

    通知表示, 试点社区应规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站 ,还将配建食堂、家政服务网点等便民商业服务设施。

    试点时间自2022年10月开始,为期2年。重点围绕以下四方面内容探索可复制、可推广经验。

    完整社区试点应该如何建设?

    完善社区服务设施

    《通知》表示,试点社区应规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站。每百户居民拥有综合服务设施面积不低于30平方米,60%以上建筑面积用于居民活动。另外,试点社区应适应居民日常生活需求,配建便利店、菜店、食堂、邮件和快件寄递服务设施、理发店、洗衣店、药店、维修点、家政服务网点等便民商业服务设施。与此同时,新建社区要依托社区综合服务设施,集中布局、综合配建各类社区服务设施,为居民提供一站式服务。既有社区可结合实际确定设施建设标准和形式,通过补建、购置、置换、租赁、改造等方式补齐短板。此外,各地应统筹若干个完整社区构建活力街区,配建中小学、养老院、社区医院等设施,与15分钟生活圈相衔接,为居民提供更加完善的公共服务。

    打造宜居生活环境

    试点社区应结合城镇老旧小区改造、城市燃气管道老化更新改造等工作,加强供水、排水、供电、道路、供气、供热(集中供热地区)、安防、停车及充电、慢行系统、无障碍和环境卫生等基础设施改造建设。此外,《通知》鼓励具备条件的社区建设电动自行车集中停放和充电场所,同时推进社区适老化、适儿化改造,鼓励在社区公园、闲置空地和楼群间布局简易的健身场地设施,开辟健身休闲运动场所。

    推进智能化服务

    试点社区应建设智慧物业管理服务平台,推进智慧物业管理服务平台与城市运行管理服务平台、智能家庭终端互联互通和融合应用,提供一体化管理和服务。同时,试点社区应整合家政保洁、养老托育等社区到家服务,链接社区周边生活性服务业资源,建设便民惠民智慧生活服务圈。

    健全社区治理机制

    建立健全党组织领导的社区协商机制,搭建沟通议事平台,推进设计师进社区,引导居民全程参与完整社区建设。对于涉及社区规模调整优化、社区服务设施建设改造、社区综合服务设施功能配置等关系群众切身利益的重大事项,应广泛听取群众意见建议。开展城市管理进社区工作,有效对接群众需求,提高城市管理和服务水平。开展美好环境与幸福生活共同缔造活动,培育社区文化,凝聚社区共识,增强居民对社区的认同感、归属感。

    举报/反馈

  • 两部门发文:完整社区将配建食堂
    作者:乐居财经
    发布时间:2022-11-01 14:17
    快照:

    乐居财经 兰兰 11月1日消息,住房和城乡建设部办公厅、民政部办公厅近日发布《关于开展完整社区建设试点工作的通知》,各市(区)应选取3至5个社区开展完整社区建设试点,试点时间自2022年10月开始,为期2年。

    《通知》指出,以社区居民委员会辖区为基本单元推进完整社区建设试点工作,规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站。每百户居民拥有综合服务设施面积不低于30平方米,60%以上建筑面积用于居民活动。适应居民日常生活需求,配建便利店、菜店、食堂、邮件和快件寄递服务设施、理发店、洗衣店、药店、维修点、家政服务网点等便民商业服务设施。

    【关注百家号乐居财经,洞悉房产市场风云变化。】

    文章来源:乐居财经

    举报/反馈

  • 两部门发文开展完整社区建设试点工作,配建中小学、养老院等
    作者:大河财立方
    发布时间:2022-10-31 09:49
    快照:

    【大河财立方消息】10月31日,住房和城乡建设部办公厅、民政部办公厅发布《关于开展完整社区建设试点工作的通知》,聚焦群众关切的“一老一幼”设施建设,聚焦为民、便民、安民服务,切实发挥好试点先行、示范带动的作用,打造一批安全健康、设施完善、管理有序的完整社区样板,尽快补齐社区服务设施短板,全力改善人居环境,努力做到居民有需求、社区有服务。

    通知明确,按照相关政策标准规范要求,规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站。统筹若干个完整社区构建活力街区,配建中小学、养老院、社区医院等设施,与15分钟生活圈相衔接,为居民提供更加完善的公共服务。

    引入物联网、云计算、大数据、区块链和人工智能等技术,建设智慧物业管理服务平台,促进线上线下服务融合发展。推进智慧物业管理服务平台与城市运行管理服务平台、智能家庭终端互联互通和融合应用,提供一体化管理和服务。

    通知要求,各省级住房和城乡建设、民政部门组织本地区每个城市(区)选取3—5个社区开展完整社区建设试点,编制试点工作方案,明确试点目标、试点内容、重点项目、实施时序和保障措施等。

    住房和城乡建设部办公厅 民政部办公厅

    关于开展完整社区建设试点工作的通知

    各省、自治区住房和城乡建设厅、民政厅,直辖市住房和城乡建设(管)委、民政局,新疆生产建设兵团住房和城乡建设局、民政局:

    为贯彻落实《中共中央 国务院关于加强基层治理体系和治理能力现代化建设的意见》《中共中央办公厅 国务院办公厅印发<关于推动城乡建设绿色发展的意见>的通知》《国务院办公厅关于印发“十四五”城乡社区服务体系建设规划的通知》等文件精神,开展完整社区建设试点,进一步健全完善城市社区服务功能。现将有关事项通知如下:

    一、总体要求

    以习近平新时代中国特色社会主义思想为指导,坚持以人民为中心的发展思想,坚持尽力而为、量力而行,聚焦群众关切的“一老一幼”设施建设,聚焦为民、便民、安民服务,切实发挥好试点先行、示范带动的作用,打造一批安全健康、设施完善、管理有序的完整社区样板,尽快补齐社区服务设施短板,全力改善人居环境,努力做到居民有需求、社区有服务。

    二、试点任务

    试点工作自2022年10月开始,为期2年,重点围绕以下四方面内容探索可复制、可推广经验。

    (一)完善社区服务设施。以社区居民委员会辖区为基本单元推进完整社区建设试点工作。按照《城市居住区规划设计标准》(GB50180-2018)、《城市社区服务站建设标准》(建标167-2014)等标准规范要求,规划建设社区综合服务设施、幼儿园、托儿所、老年服务站、社区卫生服务站。每百户居民拥有综合服务设施面积不低于30平方米,60%以上建筑面积用于居民活动。适应居民日常生活需求,配建便利店、菜店、食堂、邮件和快件寄递服务设施、理发店、洗衣店、药店、维修点、家政服务网点等便民商业服务设施。新建社区要依托社区综合服务设施,集中布局、综合配建各类社区服务设施,为居民提供一站式服务。既有社区可结合实际确定设施建设标准和形式,通过补建、购置、置换、租赁、改造等方式补齐短板。统筹若干个完整社区构建活力街区,配建中小学、养老院、社区医院等设施,与15分钟生活圈相衔接,为居民提供更加完善的公共服务。

    (二)打造宜居生活环境。结合城镇老旧小区改造、城市燃气管道老化更新改造等工作,加强供水、排水、供电、道路、供气、供热(集中供热地区)、安防、停车及充电、慢行系统、无障碍和环境卫生等基础设施改造建设,落实海绵城市建设理念,完善设施运行维护机制,确保设施完好、运行安全、供给稳定。鼓励具备条件的社区建设电动自行车集中停放和充电场所,并做好消防安全管理。顺应居民对美好环境的需要,建设公共活动场地和公共绿地,推进社区适老化、适儿化改造,营造全龄友好、安全健康的生活环境。鼓励在社区公园、闲置空地和楼群间布局简易的健身场地设施,开辟健身休闲运动场所。

    (三)推进智能化服务。引入物联网、云计算、大数据、区块链和人工智能等技术,建设智慧物业管理服务平台,促进线上线下服务融合发展。推进智慧物业管理服务平台与城市运行管理服务平台、智能家庭终端互联互通和融合应用,提供一体化管理和服务。整合家政保洁、养老托育等社区到家服务,链接社区周边生活性服务业资源,建设便民惠民智慧生活服务圈。推进社区智能感知设施建设,提高社区治理数字化、智能化水平。

    (四)健全社区治理机制。建立健全党组织领导的社区协商机制,搭建沟通议事平台,推进设计师进社区,引导居民全程参与完整社区建设。对于涉及社区规模调整优化、社区服务设施建设改造、社区综合服务设施功能配置等关系群众切身利益的重大事项,应广泛听取群众意见建议。开展城市管理进社区工作,有效对接群众需求,提高城市管理和服务水平。开展美好环境与幸福生活共同缔造活动,培育社区文化,凝聚社区共识,增强居民对社区的认同感、归属感。

    三、工作要求

    各省级住房和城乡建设、民政部门要会同有关部门建立协同机制,结合城镇老旧小区、老旧街区、城中村改造等工作,统筹推动完整社区建设试点,因地制宜探索建设方法、创新建设模式、完善建设标准,以点带面提升完整社区覆盖率。组织本地区每个城市(区)选取3—5个社区开展完整社区建设试点,编制试点工作方案,明确试点目标、试点内容、重点项目、实施时序和保障措施等。汇总各城市上报的试点有关情况,填写完整社区建设试点实施计划表(见附件),于2022年11月30日前报送住房和城乡建设部建筑节能与科技司、民政部基层政权建设和社区治理司。自2023年开始,每半年向住房和城乡建设部、民政部报送本地区完整社区建设试点工作情况和完整社区建设典型案例。

    住房和城乡建设部、民政部将会同有关部门加强调研指导,结合城市体检评估对完整社区试点工作情况进行综合评价,遴选一批完整社区样板,在全国范围内宣传推广。

    责编:王时丹 | 审核:李震 | 总监:万军伟

    举报/反馈

  • 关于线程你必须知道的8个问题(中)
    作者:技术范王有志
    发布时间:2022-11-02 12:07
    快照:

    大家好,我是王有志。

    原计划是今天结束线程的部分,但是写完后才发现,光Thread类的核心方法分析就写了5000多字了,所以不得不再拆出来一篇。

    在02.关于线程你必须知道的8个问题(上)我们一起学习了如何创建线程,以及Java中线程状态,那么今天就来学习Thread类的核心方法。

    Tips:

    Java及JVM源码基于Java 11JVM源码仅展示关键内容,另附Open JDK链接文末附Java方法使用Demo的Gitee地址

    Thread.start和Thread.run

    上一篇中我们已经知道,Thread.run实际上是来自Runnable接口,直接调用并不会启动新线程,只会在主线程中运行。

    Thread.start方法中调用的Thread.start0方法是真正承载了创建线程,调用Thread.run方法的能力。

    其实到这里已经回答了它们之间的区别,接下来我们一起来看底层是如何实现的。

    Tips:有面向对象编程语言基础的,看懂JVM源码对你来说并不困难。

    首先是thread.c文件,该文件为Java中Thread类注册了native方法。

    Tips:native方法是Java Native Interface,简称JNI。

    第一眼就可以看到start0对应的JVM方法JVM_StartThread,实现是在jvm.cpp中:

    接着来看new JavaThread做了什么,在thread.cpp中:

    os::create_thread创建了操作系统层面的线程。这和上一篇中得到的结论是一致的,Java中的Thread.start0完成了操作系统层面线程的创建和启动。

    个人认为Thread.run和Thread.start是没什么可比性的。如果被问到这个问题,要么是面试官懒,网上随便找找就来问,要么是技术水平确实一般。

    Tips:

    Thread::start方法在thread.cpp中os::create_thread方法在os_linux.cpp中,注意操作系统的区别os::pd_start_thread方法在os_linux.cpp中,注意操作系统的区别os::start_thread方法在os.cpp中

    Thread.sleep和Object.wait

    接下来看两个可以放在一起比较的方法:

    Object.waitThread.sleep

    很明显的区别是,它们并不在同一个类中定义,其次方法名上也能看出些许差别,“等待”和“睡眠”。

    Object.wait

    Java在Object类中,提供了2个wait方法的重载,不过最终都是调用JNI方法:

    方法声明中我们能得知该方法的作用--使线程暂停指定的时间。

    接着我们来看Object.wait的方法注释:

    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

    使当前线程阻塞,直到主动唤醒或者超过指定时间。清晰的说明了Object.wait的功能,另外也提示了如何唤醒线程:

    Object.notifyObject.notifyAll

    有了之前的经验,很容易想到Object.wait方法是在Object.c中注册的。我们找到它在jvm.cpp中的实现:

    接着是ObjectSynchronizer::wait,在synchronizer.cpp中:

    获取ObjectMonitor对象时,调用了ObjectSynchronizer::inflate方法,inflate翻译过来是膨胀的意思,是锁膨胀的过程。实际上,在未展示的代码中,还有偏向锁的过程,不过这些不是这部分的重点。

    然后调用ObjectMonitor.wait,这个方法有225行,只看想要的部分:

    答案已经呼之欲出了,ObjectMonitor.wait中退出了监视器,在Java层面就是Object.wait方法会释放监视器锁。

    对不同等待时间的处理也需要关注一下,millis <= 0的情况下,执行的是Self->_ParkEvent->park(),除非主动唤醒,否则线程永远停在这里。在Java层面看,执行object.wait(0)会使当前线程永久阻塞。

    既然都到这了,就多说一句,ObjectMonitor.exit中有几行关键代码,是synchronized特性实现的关键:

    这些内容我们提前混个眼熟,后面在synchronized中详细解释。

    我们来思考两个问题:

    为什么Object.wait必须要在synchronized中调用?为什么wait方法设计在Object类中,而不是Thread类中?

    首先,我们已经知道Object.wait的底层实现中,要释放监视器锁,释放的前提是什么?要先拥有监视器锁。那么在synchronized中调用Object.wait就很容易理解了。

    其次,锁住的是什么?是对象,从来都不是执行线程(Thread实例是线程对象,不是执行线程)。因此涉及到监视器锁操作的方法是不是放到Object中更合适呢?

    最后,如果你仔细阅读过Object.wait所有重载方法注释的话,你会发现一个词:spurious wakeup(虚假唤醒)。

    这是没有主动notify/notifyAll,或者被动中断,超时的情况下就唤醒处于WAITING状态的线程。因此Java也建议你在循环中调用Object.wait:

    简单解释下虚假唤醒产生的原因,我们已经知道Object.wait最终是通过Self->_ParkEvent->park()或Self->_ParkEvent->park(millis)实现线程暂停的,其调用的park方法位于os_posix.cpp中:

    pthread_cond_wait和pthread_cond_timedwait是Linux对POSIX的实现,知道其作用即可,就不继续深入了。

    我们很容易联想到,Object.notify的底层实现是调用os::PlatformEvent::unpark方法完成的。不出所料,从Object.c到ObjectMonitor.cpp,最后会发现该方法包含在os_posix.cpp中:

    同样的,pthread_cond_signal也是Linux对POSIX的实现。Linux man page中对其的解释是:

    The pthread_cond_broadcast() function shall unblock all threads currently blocked on the specified condition variable cond.The pthread_cond_signal_() function shall unblock at least one of the threads that are blocked on the specified condition variable cond (if any threads are blocked on cond).

    其中第二段是关键,即pthread_cond_signal会唤醒至少一个阻塞在指定条件上的线程。也就是说,调用Object.notify可能会唤醒不止一个符合条件的线程。

    Java层面有一个经典的例子--生产者消费者,只贴出产品部分的代码(全量请查看Gitee):

    如果有1个生产者,多个消费者,消费者判定产品数量为0后,全部进入等待,生产者生产后,通知消费者消费,此时多个消费者被唤醒,直接进行消费,造成产品的总量为负数的情况。

    改进的方法也很简单:

    判断方式由if修改为while,不断地检查条件notify修改为notifyAll,避免死锁产生

    Thread.sleep

    首先是方法声明:

    通过字面意思可以看出,让线程“睡眠”指定时间。再来看注释提供了哪些信息:

    Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds plus the specified number of nanoseconds, subject to the precision and accuracy of system timers and schedulers. The thread does not lose ownership of any monitors.

    最后一句非常重要,The thread does not lose ownership of any monitors意思是,使线程进入休眠,但不会丢失任何监视器锁的所有权。通俗点来说就是,我可以不用,但我不能没有。

    Thread.sleep依旧是JNI方法,直接看JVM实现,在jvm.cpp中:

    判断休眠时间millis,如果millis == 0,调用os::naked_yield(),源码在os_linux.cpp中,该方法会让出CPU时间。真是“大公无私”啊,但是唤醒是由操作系统决定。

    Tips:Java 11对millis == 0的逻辑做了修改,可以查看Java 8的逻辑,我有点忘了。

    也就是说,执行thread.sleep(0)并不是“咻”的一下什么都不做就结束了,而是真正的让出了CPU时间。

    接着是else的部分,最关键的是os::sleep(thread, millis, true) ,调用操作系统sleep方法进入休眠,以对Linux的封装os_posix.cpp中的实现为例:

    简化后就很好理解了,计算millis剩余时间,millis > 0调用park暂停线程,唤醒后继续循环,millis <= 0则表示休眠结束。

    到这里Thread.sleep的内容也算告一段落了,分析的过程中没有发现涉及到ObjectMontior的地方,因此断定Thread.sleep并不会释放监视器锁的所有权。

    Thread.yield和LockSupport.park

    趁热打铁,来看同样拥有“暂停”能力的两个方法:

    Thread.yieldLockSupport.park

    Thread.yield

    首先是方法声明:

    还是熟悉的JNI方法。同样从注释开始:

    A hint to the scheduler that the current thread is willing to yield its current use of a processor. The scheduler is free to ignore this hint.

    这句话很好理解,提示调度器当前线程可以放弃处理器时间,但是调度器可以忽略。

    直接来看JVM实现:

    是不是很熟悉?和我们在Thread.sleep中看到millis == 0的场景不能说相似吧,简直是一模一样。

    强调一下,Thread.yield只是暂时让出CPU时间,并不是不再执行,也没有释放监视器锁。

    LockSupport.park

    LockSupport.park常常会和Thread.sleep,Thread.yield以及Object.wait一起比较,趁这次一起说完。

    从Java源码入手:

    好家伙!!!LockSupport啥也不干,直接使用大名鼎鼎的Unsafe,那么直接分析Unsafe.park。

    在此之前,还是要先看注释:

    Disables the current thread for thread scheduling purposes unless the permit is available.

    翻译过来就是,未获得许可的情况下,一直暂停线程。从表象上看和Object.wait很相似,但是别忘了Object.wait会释放监视器锁。

    Unsafe.park

    依旧是方法声明:

    Tips:@HotSpotIntrinsicCandidate是Java 9中引入的,表示方法在HotSpot虚拟机中有高效的实现。

    Unsfae.java的方法是直接在unsafe.cpp中注册的,实现也在unsafe.cpp中:

    需要注意,Thread.sleep中使用的是os::PlatformEvent::park,这里调用的是Parker::park,在os_posix.cpp中:

    Parker::park提供了两种场景,暂停指定时间依赖于pthread_cond_timedwait实现,对应LockSupport.parkNanos,不限时暂停依赖于pthread_cond_wait实现,对应LockSupport.park。

    从源码来看,Thread.sleep中使用的os::PlatformEvent::park是简化版的Parker::park。另外,我们也可以得到一个隐藏结论:LockSupport.park并不会释放监视器锁。

    Thread.join

    先来看Java中关于join(long millis)的注释:

    Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever.

    比较容易翻译,等待指定的时间,或调用线程运行结束。如果指定时间为0,则会永远等待。

    看起来又是关于线程“暂停”的方法了,我们来看源码:

    逻辑很清晰,也没有调用太多JNI方法。看起来岁月静好,不过,我们先写一段测试代码:

    现在我们提出两个问题:

    谁在等待t1运行结束?什么时候唤醒的线程?

    对于第一个问题,我们先来回顾下Object.wait的使用。ObjectMonitor::wait中调用os::PlatformEvent::park,操作的对象是当前执行线程,而不是调用对象。

    Tips:这里有些绕,this.joinThread.join()的调用中,this.joinThread是线程对象,而不是执行线程,执行线程是Thread实例对象在操作系统层面的映射。

    网上很多答案说,join方法阻塞的是主线程并不准确,个人理解在哪个线程中执行join方法(不是调用!!!),就阻塞哪个线程。举个例子:

    这种情况下被阻塞的是线程实例对象t2在操作系统层面映射的执行线程。

    接着我们来看第二个问题,在Thread.join的源码中,我们并没有看到notify/notifyAll方法,那么线程怎么被唤醒的呢?

    这里直接给出答案,以上面的代码为例子,在线程t1执行结束时,JVM会唤醒等待的线程。也就是JVM层面执行JavaThread::exit时唤醒线程,源代码在thread.cpp中:

    通过JVM的注释也能看出这个方法做了什么,不过我们还是一起来看ensure_join方法,在thread.cpp中:

    代码最后一行,调用了notify_all唤醒了所有线程,也就是说,此刻所有调用Object.wait的方法都会被唤醒。另外也可以看到,线程状态被标记为TERMINATED也是在这个方法中完成的。

    到此为止,Thread.join的原理也已经说完了,它的本质就是调用Object.wait实现阻塞,因此Java的注释中也会建议不要使用wait/notify/notifyAll:

    It is recommended that applications not use wait, notify, or notifyAll on Thread instances.

    Thread.interrupt

    从关键代码开始:

    如果没猜错的话,interrupt0依旧是JNI方法:

    往下追之前,来看注释:

    Interrupts this thread.

    简明扼要,中断线程。

    这时候相信你已经能够熟练的点开jvm.cpp了查看源码了:

    跳过thread.cpp,直接来到os::is_interrupted方法,在os_posix.cpp中:

    调用Thread.interrupt在JVM层面并没有立即停止线程,仅标记了中断状态,随后尝试唤醒处于sleep/wait/park的线程,真正的中断是从操作系统获取该线程的中断状态开始的。

    结语

    今天我们一起了解了Thread类中的6个方法,另外也学习了Object.wait,Object.notify,LockSupport.park和Unsafe.park,虽然没有提及Object.notifyAll,但它的原理和Object.notify完全一样,只不过多了一层循环。

    最后我们再通过一张表格,来对比下线程“暂停”方法:

    当然了,“暂停”的方式不仅仅有这些,还有一些会在JUC中涉及。

    本篇文章代码仓库:Thread核心方法

    好了,今天就到这里了,Bye~~

    参考资料

    Thread.run方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/classes/java/lang/Thread.java#l832

    Thread.start方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/classes/java/lang/Thread.java#l7

    Thread.start0方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/classes/java/lang/Thread.java#l8

    thread.c:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/native/libjava/Thread.c#l44

    jvm.cpp的JVM_StartThread方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/prims/jvm.cpp#l2859

    thread.cpp的JavaThread构造方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/d2137bd1e57d/src/hotspot/share/runtime/thread.cpp#l1623

    thread.cpp的start方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/d2137bd1e57d/src/hotspot/share/runtime/thread.cpp#l463

    os_linux.cpp的create_thread方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/linux/os_linux.cpp#l715

    os_linux.cpp的pd_start_thread方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/linux/os_linux.cpp#l879

    os.cpp的start_thread方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/share/runtime/os.cpp#l857

    Object.c的wait方法的注册:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/native/libjava/Object.c#l44

    jvm.cpp的JVM_MonitorWait方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/prims/jvm.cpp#l602

    synchronizer.cpp的wait方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/runtime/synchronizer.cpp#l479

    ObjectMonitor.wait方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/runtime/objectMonitor.cpp#l1416

    ObjectMonitor.exit方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/runtime/objectMonitor.cpp#l905

    os_posix.cpp的unpark方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/posix/os_posix.cpp#l1928

    Linux man page对pthread_cond_signal的解释:

    https://linux.die.net/man/3/pthread_cond_signal

    虚假唤醒示例:

    https://gitee.com/wyz-A2/JavaInterview/blob/master/Concurrence/src/main/java/com/wyz/thread/core/SpuriousWakeupDemo.java

    jvm.cpp的JVM_Sleep方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/prims/jvm.cpp#l3084

    os_linux.cpp的naked_yield方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/linux/os_linux.cpp#l4132

    os_posix.cpp的sleep方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/posix/os_posix.cpp#l562

    unsafe.cpp的Unsafe_Park方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/83aec1d357d4/src/hotspot/share/prims/unsafe.cpp#l938

    os_posix.cpp的Parker::park方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/posix/os_posix.cpp#l1988

    thread.cpp的exit方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/d2137bd1e57d/src/hotspot/share/runtime/thread.cpp#l1782

    thread.cpp的ensure_join方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/d2137bd1e57d/src/hotspot/share/runtime/thread.cpp#l1762

    jvm.cpp的JVM_Interrupt方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/80abf702eed8/src/hotspot/share/prims/jvm.cpp#l3164

    thread.cpp的interrupt方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/d2137bd1e57d/src/hotspot/share/runtime/thread.cpp#l823

    os_posix.cpp的is_interrupted方法:

    https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/os/posix/os_posix.cpp#l638

    Thread核心方法:

    https://gitee.com/wyz-A2/JavaInterview/tree/master/Concurrence/src/main/java/com/wyz/thread/core

    举报/反馈

  • 远看丹青水墨,近看山脚人家
    作者:叶子anan
    发布时间:2022-11-02 09:14
    快照:

    举报/反馈

  • 藏头诗:小区配建食堂,干饭!
    作者:书生此生书
    发布时间:2022-11-02 21:23
    快照:

    小径客来穿竹入,

    区区未说除蛟虎。

    配里繁华乱眼生,

    建章昨夜起春风。

    食檗不易食梅难,

    堂前王母鬓方玄。

    干戚奋武事将行,

    饭余扪腹细哦诗。

    举报/反馈

  • 配建便利店、菜店、食堂等服务设施 两部门:开展完整社区建设试点工作
    作者:新浪财经
    发布时间:2022-11-02 05:27
    快照:

    来源:人民日报

    配建便利店、菜店、食堂等服务设施

    两部门:开展完整社区建设试点工作

    本报北京11月1日电 (记者丁怡婷)住房和城乡建设部办公厅、民政部办公厅近日印发通知,提出开展完整社区建设试点工作,进一步健全完善城市社区服务功能。试点工作自今年10月开始,为期2年,要求尽快补齐社区服务设施短板,全力改善人居环境,努力做到居民有需求、社区有服务。

    根据通知,试点工作将重点围绕完善社区服务设施、打造宜居生活环境、推进智能化服务、健全社区治理机制等四方面内容探索可复制、可推广经验。

    完善社区服务设施方面,通知提出,以社区居民委员会辖区为基本单元推进完整社区建设试点工作。每百户居民拥有综合服务设施面积不低于30平方米,60%以上建筑面积用于居民活动。适应居民日常生活需求,配建便利店、菜店、食堂、邮件和快件寄递服务设施、理发店、洗衣店、药店、维修点、家政服务网点等便民商业服务设施。统筹若干个完整社区构建活力街区,配建中小学、养老院、社区医院等设施,与15分钟生活圈相衔接,为居民提供更加完善的公共服务。

    打造宜居生活环境方面,将结合城镇老旧小区改造、城市燃气管道老化更新改造等工作,加强基础设施改造建设。推进智慧物业管理服务平台与城市运行管理服务平台、智能家庭终端互联互通和融合应用,提供一体化管理和服务。

    举报/反馈

  • 原文链接:点击查看
  • 来源:百度-每日时事热点(2022-11-03)
  • 热度:3662773
  • 快照时间:2022-11-03 00:00:08
全网搜-移动手机端
  • 百度: 小区将配建食堂 两部门发文
  • 搜狗: 小区将配建食堂 两部门发文
  • 360: 小区将配建食堂 两部门发文
  • Google: 小区将配建食堂 两部门发文
  • Bing: 小区将配建食堂 两部门发文
  • Yahoo: 小区将配建食堂 两部门发文
  • 宜搜: 小区将配建食堂 两部门发文
  • 神马: 小区将配建食堂 两部门发文
全网搜-电脑PC端
  • 百度: 小区将配建食堂 两部门发文
  • 搜狗: 小区将配建食堂 两部门发文
  • 360: 小区将配建食堂 两部门发文
  • Google: 小区将配建食堂 两部门发文
  • Bing: 小区将配建食堂 两部门发文
  • Yahoo: 小区将配建食堂 两部门发文
  • 每日热点网可以查询历史热点(2021-02-25日后),欢迎收藏。
  • 每日热点网
  • siteMap