Ø I probably missed a lot of things, so feel free to correct me Go’s CSP is based on lightweight threads (goroutines), messaging (channels), and “select” – all of which are built into the language, not a library. Being built in makes then easier to use than dealing with libraries. Locks and atomics are also offered as part of the standard library.
>From your list, it seems that you are considering 3rd party libraries, too. >In this case, you are really looking at a lot of implementations built using >the basic tools. If you want to learn concurrency, perhaps you should be >planning to build these yourself rather than using ones written by others. John John Souvestre - New Orleans LA From: golang-nuts@googlegroups.com [mailto:golang-nuts@googlegroups.com] On Behalf Of yinsi....@gmail.com Sent: 2017 February 05, Sun 18:23 To: golang-nuts Subject: [go-nuts] [Beginner question] Which language supports more concurrency models: Go or Java? Question is in the title. I want to learn more about concurrency. So I am looking for a language that can teach me the greatest number of concurrency models. It seems that Java supports these models: * Plain old threads & locks * In addition, Java also has various concurrent data structures in the java.util.concurrent package <http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html> (ConcurrentHashMap, CopyOnWriteArrayList, etc) * Actor model: Akka <http://akka.io/> * CSP / lightweight threads & channels: Quasar <http://blog.paralleluniverse.co/post/49445260575/quasar-pulsar> * Software Transactional Memory: built in into Clojure (I don't know if it can be used from Java), Akka version <= 2.2 * Dataflow: Quasar <http://blog.paralleluniverse.co/2014/02/20/reactive/> I'm not very familiar with Go, but here's what I found: * CSP: built in into the language * Actor model: Proto Actor <http://proto.actor/> * I probably missed a lot of things, so feel free to correct me Thank you in advance, Rio -- 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. -- 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.