对于我开始接触同步异步单线程多线程的概念的时候,都是分别理解同步和异步、单线程和多线程概念,当看到“使用同步方法保证线程安全”时愚昧的理解为那就是单线程咯;于是就陷入了困惑,同步等于单线程吗?
下面是我自己不成熟的理解,理解的不是很全面,大家仅供参考,看看就好,欢迎批评改正,深刻的理解我会努力学习,日后再整理,多多包容。
同步:等待执行结束之后,再执行;
异步:可以不管不顾,同一时间,一起执行;
单线程:只有一个线程;
多线程:有多个线程;
同步!= 单线程 异步!=多线程
举例:
1:
多线程:小明可以边吃饭边看电视剧 ;
单线程:小明只睡觉;
2:
同步:小明吃饭,小明吃完啦,爸爸吃; 针对饭;
异步:小明吃饭,同时爸爸也吃饭; 针对饭;
3:
小明边吃饭边看电视 ,同时,爸爸专心吃饭;
小明:多线程;
爸爸:单线程;
饭:异步 (爸爸和小明一起吃饭,小明爸爸都吃不饱);
4:
小明边吃饭边看电视 ,吃完了;爸爸专心吃饭;
小明:多线程;
爸爸:单线程;
饭:同步(爸爸怕小明饿着,先让小明吃,小明饱了,吃完了,爸爸再吃);
5:
小明边吃饭边看电视 ,吃完了;爸爸再吃饭,也是边吃饭边看电视;
小明:多线程;
爸爸:多线程;
饭:同步;
电视:异步;
6:小明爸爸同时边吃饭边看电视
小明:多线程;
爸爸:多线程;
饭:异步;
电视:异步;
以上几个例子中小明和爸爸类似于两个不同进程,饭、电视类似于资源,不同进程访问不同资源方式不同,同步异步和单线程多线程比较的维度不同。