ok,i will try,thanks. 在 2017年7月27日星期四 UTC+8下午8:33:24,JuciÊ Andrade写道: > > 3702, I think you need to learn some fundamental concepts to better > understand the problem at hand. > > > Processors have more than one core. That means we have several threads > running simultaneously. To let more than one thread access the same memory > region is a bad idea. If your program simply crashes consider yourself a > lucky guy. There are other subtle problems that can be dangerous and > difficult to spot. > > > So, the programmer must find a way to avoid those simultaneous access. A > popular way is by using some synchronization object, i.e. a mutex. Before > any access to the shared state, a thread must lock the mutex, releasing it > when the access is done. For small programs, it works. However, as your > program grows, that approach can get complicated in insidious ways. > > > Go offers mutex, as several other languages do, but it offers a much > better device: channels. There are dozens of ways to use channels, but I > will give you just an example. > > > Divide your program so that only one goroutine can access the memory area. > Let’s call this goroutine the “data owner”. That way you eliminate the > shared state problem at once, because there will be no shared state, at all. > > > When some other goroutine needs to read or change that state, it ASKs the > data owner to do the access on its behalf. How? By sending a request thru a > channel, that’s how. The data owner process those requests, performing the > required actions. > > > Learn to use channels, 3702. After a little practice, your programs will > run fast and safely. As an additional benefit the architecture will be > solid, easy to change when the need arises. > > On Thursday, July 27, 2017 at 7:28:39 AM UTC-3, 3702...@qq.com wrote: >> >> o yea,thanks.it's a good way to improve the performance of my >> program.but will it solve the problem,crashing? >> >> 在 2017年7月27日星期四 UTC+8上午12:26:36,JuciÊ Andrade写道: >>> >>> I mean bytes.Buffer. >>> >>> On Wednesday, July 26, 2017 at 8:08:13 AM UTC-3, JuciÊ Andrade wrote: >>>> >>>> Dear friend 3702, while you are at it, please change that string >>>> appending strategy. Use a bufio.Buffer instead. It's way faster. >>>> >>>>
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.