Can't go channels send and receive at the same time?

can"t go channel send and receive at the same time

I read the channel send and recv source codes of go 1.11 and found that when sending and receiving, it will be locked first. If I understand it correctly,
both use the same lock. Does this mean that the channel cannot send and receive at the same time. That is, receiving and sending are mutually exclusive?

Go
Jul.05,2022

Yes. It can't. It is a simple circular queue.

A Lock almost solves a large number of concurrency problems, and there are no CAS" operations

Why is it so designed? I think the chan in go is just used for simple communication

.

there is no communication that cannot be solved by one chan, if there is, then two.

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1e47685-4c338.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1e47685-4c338.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?