课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员所掌握的软件编程开发方法也在不断的变化,而今天我们就一起来了解一下,并发编程开发都有哪些技术核心。
1、分工
将当前Sprint的Story拆分成「合适」大小的Task,并且安排给「合适」的TeamMember去完成
这里面用了两个「合适」,将Story拆分成大小适中,可完成的Task是非常重要的。拆分的粒度太粗,导致这个任务完成难度变高,耗时长,不易与其他人配合;拆分的粒度太细,又导致任务太多,不好管理与追踪,浪费精力和资源。(合适的线程才能更好的完成整块工作,当然一个线程可以轻松搞定的就没必要多线程);安排给合适的人员去完成同样重要,UX-UE问题交给后端人员处理,很显然是有问题的(主线程应该做的事交给子线程显然是解决不了问题的,每个线程做正确的事才能发挥作用)
关于分工,常见的Executor,生产者-消费者模式,Fork/Join等,这都是分工思想的体现
2、同步/协作
任务拆分完毕,我要等张三的任务,张三要等李四的任务,也就是说任务之间存在依赖关系,前面的任务执行完毕,后面的任务才可以执行,人高级在可以通过沟通反复确认,确保自己的任务可以开始执行。但面对程序,我们需要了解程序的沟通方式,一个线程执行完任务,如何通知后续线程执行。
3、分工
分工和同步强调的是性能,但是互斥是强调正确性,就是我们常常提到的「线程安全」,当多个线程同时访问一个共享变量/成员变量时,就可能发生不确定性,造成不确定性主要是有可见性、原子性、有序性这三大问题,而解决这些问题的核心就是互斥。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。