Companies Home Search Profile

Working with Concurrency in Go (Golang)

Focused View

Trevor Sawler

9:38:35

12 View
  • 1. Introduction.mp4
    06:00
  • 2. A bit about me.mp4
    01:01
  • 3. Installing Go.mp4
    00:51
  • 4. Installing Visual Studio Code.mp4
    01:28
  • 5. Installing Make.mp4
    01:27
  • 6. Asking for help.mp4
    01:14
  • 7. Mistakes. We all make them..mp4
    01:06
  • 1. What well cover in this section.mp4
    01:03
  • 2.1 source.zip
  • 2. Creating GoRoutines.mp4
    06:33
  • 3.1 first-example.zip
  • 3. WaitGroups to the rescue.mp4
    08:39
  • 4.1 source.zip
  • 4. Writing tests with WaitGroups.mp4
    06:54
  • 5.1 challenge-1.zip
  • 5.2 go-concurrency-0240-goroutines-4.mp4
    02:25
  • 5. Challenge working with WaitGroup.mp4
    02:25
  • 6.1 challenge-1-solution.zip
  • 6. Solution to Challenge.mp4
    05:00
  • 1. What well cover in this section.mp4
    04:21
  • 2.1 mutex.zip
  • 2. Race Conditions an example.mp4
    05:10
  • 3.1 source.zip
  • 3. Adding sync.Mutex to our code.mp4
    03:25
  • 4.1 source.zip
  • 4. Testing for race conditions.mp4
    03:39
  • 5.1 source.zip
  • 5. A more complex example.mp4
    13:14
  • 6.1 source.zip
  • 6. Writing a test for our weekly income project.mp4
    03:33
  • 7.1 producer-consumer.zip
  • 7.2 The ProducerConsumer problem on Wikipedia.html
  • 7. ProducerConsumer - Using Channels for the first time.mp4
    07:36
  • 8.1 producer-consumer.zip
  • 8. Getting started with the Producer - the pizzeria function.mp4
    09:57
  • 9.1 producer-consumer.zip
  • 9. Making a pizza the makePizza function.mp4
    10:47
  • 10. Finishing up the Producer code.mp4
    07:29
  • 11.1 producer-consumer.zip
  • 11. Creating and running the consumer ordering a pizza.mp4
    07:21
  • 12.1 producer-consumer.zip
  • 12. Finishing up our ProducerConsumer project.mp4
    04:39
  • 1.1 The Dining Philosophers on Wikipedia.html
  • 1. What well cover in this section.mp4
    01:54
  • 2.1 dining-philosophers.zip
  • 2. Getting started with the problem.mp4
    05:54
  • 3.1 dining-philosophers.zip
  • 3. Setting up our mutexes.mp4
    05:46
  • 4.1 dining-philosophers.zip
  • 4. Finishing up the code.mp4
    09:05
  • 5.1 dining-philosophers.zip
  • 5. Trying things out.mp4
    02:09
  • 6.1 dining-philosophers.zip
  • 6. Adding a delay to let a philosopher think.mp4
    02:27
  • 7. Challenge Printing out the order in which the philosophers finish eating.mp4
    01:01
  • 8.1 dining-philosophers.zip
  • 8. Solution to challenge.mp4
    03:43
  • 9.1 dining-philosophers.zip
  • 9. Writing a test for our program.mp4
    05:29
  • 1.1 Sleeping Barber problem on Wikipedia.html
  • 1. What well cover in this section.mp4
    04:05
  • 2.1 simple-channels.zip
  • 2. Introduction to channels.mp4
    13:48
  • 3.1 channel-select.zip
  • 3. The select statement.mp4
    12:11
  • 4.1 buffered-channels.zip
  • 4. Buffered Channels.mp4
    06:17
  • 5.1 sleeping-barber.zip
  • 5. Getting started with the Sleeping Barber project.mp4
    05:33
  • 6.1 sleeping-barber.zip
  • 6. Defining some variables, the barber shop, and getting started with the code.mp4
    08:22
  • 7.1 sleeping-barber.zip
  • 7. Adding a Barber.mp4
    13:25
  • 8.1 sleeping-barber.zip
  • 8. Starting the barbershop as a GoRoutine.mp4
    06:23
  • 9.1 sleeping-barber.zip
  • 9. Sending clients to the shop.mp4
    07:53
  • 10. Trying things out.mp4
    04:11
  • 1. What well cover in this section.mp4
    01:19
  • 2.1 final-project.zip
  • 2. Setting up a simple web application.mp4
    08:01
  • 3.1 BeeKeeper Studio.html
  • 3.2 Docker Desktop.html
  • 3.3 docker-compose.yml.zip
  • 3.4 final-project.zip
  • 3. Setting up our Docker development environment.mp4
    05:20
  • 4.1 final-project.zip
  • 4. Adding postgres.mp4
    08:11
  • 5.1 Makefile.windows.zip
  • 5.2 Makefile.zip
  • 5. Setting up a Makefile.mp4
    04:19
  • 6.1 final-project.zip
  • 6. Adding sessions & Redis.mp4
    04:39
  • 7.1 final-project.zip
  • 7. Setting up the application config.mp4
    04:39
  • 8.1 final-project.zip
  • 8. Setting up a route & handler for the home page, and starting the web server.mp4
    06:26
  • 9.1 final-project.zip
  • 9.2 templates.zip
  • 9. Setting up templates and building a render function.mp4
    18:32
  • 10.1 final-project.zip
  • 10. Adding session middleware.mp4
    02:07
  • 11.1 final-project.zip
  • 11. Setting up additional stub handlers and routes.mp4
    05:02
  • 12.1 final-project.zip
  • 12. Implementing graceful shutdown.mp4
    06:37
  • 13.1 db.sql.zip
  • 13. Populating the database.mp4
    02:38
  • 14.1 data.zip
  • 14.2 final-project.zip
  • 14. Adding a data package and database models.mp4
    07:02
  • 15.1 final-project.zip
  • 15. Implementing the loginlogout functions.mp4
    13:52
  • 1. What well cover in this section.mp4
    01:40
  • 2.1 final-project.zip
  • 2. Getting started with the mailer code.mp4
    18:27
  • 3.1 final-project.zip
  • 3. Building HTML and Plain Text messages.mp4
    07:10
  • 4.1 final-project.zip
  • 4. Sending a message (synchronously).mp4
    04:27
  • 5.1 final-project.zip
  • 5. Getting started sending a message (asynchronously).mp4
    07:45
  • 6.1 final-project.zip
  • 6. Writing a helper function to send email easily.mp4
    01:52
  • 7.1 final-project.zip
  • 7. Sending an email on incorrect login.mp4
    02:55
  • 8.1 final-project.zip
  • 8. Adding cleanup tasks to the shutdown() function.mp4
    03:01
  • 1. What well cover in this section.mp4
    01:00
  • 2.1 final-project.zip
  • 2.2 signer.go.zip
  • 2. Adding mail templates and URL signer code.mp4
    05:20
  • 3.1 final-project.zip
  • 3. Starting on the handler to create a user.mp4
    09:07
  • 4.1 final-project.zip
  • 4. Activating a user.mp4
    06:00
  • 5.1 final-project.zip
  • 5. Giving user data to our templates.mp4
    02:41
  • 6.1 final-project.zip
  • 6.2 JsDelivr.com.html
  • 6.3 SweetAlert2.html
  • 6. Displaying the Subscription Plans page.mp4
    12:37
  • 7.1 final-project.zip
  • 7. Adding a route and trying things out for the Plans page.mp4
    06:44
  • 8.1 final-project.zip
  • 8. Writing a stub handler for choosing a plan.mp4
    03:22
  • 1. What well cover in this section.mp4
    01:01
  • 2.1 final-project.zip
  • 2. Getting the plan id, the plan, and the user.mp4
    07:40
  • 3.1 final-project.zip
  • 3. Generating an Invoice.mp4
    09:40
  • 4.1 manual.pdf
  • 4. Generating a manual.mp4
    21:10
  • 5.1 final-project.zip
  • 5. Trying things out, subscribing a user, updating the session, and redirecting.mp4
    12:12
  • 1. What well cover in this section.mp4
    00:52
  • 2.1 final-project.zip
  • 2. Setting up our tests.mp4
    08:27
  • 3.1 final-project.zip
  • 3. Testing Routes.mp4
    08:00
  • 4.1 final-project.zip
  • 4. Testing the Renderer.mp4
    11:40
  • 5.1 final-project.zip
  • 5. Modifying the data package to make it testable.mp4
    14:08
  • 6.1 final-project.zip
  • 6. Implementing the PlanTest type.mp4
    04:26
  • 7.1 final-project.zip
  • 7.2 pageTests.txt.zip
  • 7. Getting started testing Handlers.mp4
    14:35
  • 8.1 final-project.zip
  • 8. Testing the Login Handler.mp4
    13:53
  • 9.1 final-project.zip
  • 9. Testing a handler that uses concurrency.mp4
    11:06
  • Description


    Learn the advantages and pitfalls of concurrent programming with the Go programming language

    What You'll Learn?


    • Learn about the various ways Go makes working with concurrent programing simple
    • Understand how concurrency works, and its advantages and pitfalls
    • Learn how WaitGroups, Mutexes, and channels work
    • Master concurrency by working with classic computer science problems, and by building a real-world example

    Who is this for?


  • Go programmers who want to understand how Go works with concurrent programming
  • What You Need to Know?


  • A good understanding of the Go programming language
  • A Windows, Macintosh, or Linux computer with a connection to the Internet
  • More details


    Description

    Go, often referred to as Golang, is well-known for making it remarkably easy to work with concurrency. In order to make a particular function run concurrently, all we have to do is prepend the word "go" to the function call, and it cheerfully runs in the background, as a GoRoutine. Go's built in scheduler takes are of making sure that a given GoRoutine runs when it should, and as efficiently as it can.

    However, this does not mean that working with concurrency is simple in Go—thread safe programming takes careful planning, and most importantly it requires that developers have an absolutely solid understanding of how Go deals with concurrency.

    In the standard library, Go offers us several ways of dealing with concurrently running parts of our program, right in the standard library: sync.WaitGroup, which lets us wait for tasks to finish; sync.Mutex, which allows us to lock and unlock resources, so that no two GoRoutines can access the same memory location at the same time; and finally, Channels, which allow GoRoutines to send and receive data to and from each other.

    Go's approach to concurrency is fairly straightforward, and is more or less summed up this mantra: Don't communicate by sharing memory; instead, share memory by communicating. Channels are the means by which we usually share memory by communicating.

    In this course, we'll cover the use of WaitGroups, Mutexes, and Channels, and we'll do so in detail. We'll also cover some of the problems inherent in concurrency, including early program termination and race conditions. Initially, we'll gain a good understanding of how these things work by solving some of the classic problems found in the field of computer science, including the Dining Philosophers, the Producer/Consumer problem, and the Sleeping Barber. These problems are classics for a reason: they force a developer to figure out the best approach to working with code that run concurrently, or in parallel.

    Finally, we'll finish the course out with a more "real-world" problem, where we have to register a customer for some kind of subscription service, and take care of invoicing, registration, and all the things necessary to get a new customer up and running. We'll do so, naturally, as quickly as we can by dividing the necessary tasks up into smaller tasks, and having them run concurrently.

    Who this course is for:

    • Go programmers who want to understand how Go works with concurrent programming

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category

    Go

    Trevor Sawler
    Trevor Sawler
    Instructor's Courses
    I have twenty years of experience in professional software development, and twenty years of experience as a University professor. As an entrepreneur, I have worked with a broad range of clients, including Thomson Nelson, Hewlett Packard, the Royal Bank of Canada, Keybank, Sprint, and many, many others. I also have extensive management and project management experience. I have led teams of fifty developers and artists on multi-million dollar projects, and much smaller teams on much smaller projects.As a professor, I have taught in a wide variety of course areas, including Computer Science, English, Irish, and American literature, and a number of "crossover" courses that bridge the liberal arts and technological fields.I have won regional, national, and international awards for my work in the IT field, and have also won awards for my teaching and research as a University professor.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 90
    • duration 9:38:35
    • English subtitles has
    • Release Date 2024/03/13

    Courses related to Go

    Subtitle
    Working with React and Go (Golang)
    Udemy Trevor Sawler
    Trevor Sawler
    Working with React and Go (Golang)
    24:44:46
    English subtitles
    08/22/2023
    Subtitle
    Creating Web Services with Go 1
    Pluralsight Alex Schultz
    Alex Schultz
    Creating Web Services with Go 1
    2:30:23
    English subtitles
    07/13/2023