WEBVTT

00:00.260 --> 00:00.980
Hello, guys.

00:00.980 --> 00:02.090
Welcome to this course.

00:02.090 --> 00:05.030
So let's quickly go through the agenda of this course.

00:05.030 --> 00:07.130
So this course is divided into two parts.

00:07.130 --> 00:12.230
The first part is the general Multithreading and the second part we will cover thread synchronization.

00:12.320 --> 00:17.930
So the approximate length of this course is approximately 12 hours In general Multithreading section,

00:17.930 --> 00:21.470
we will going to cover thread creation and destruction.

00:21.470 --> 00:26.090
We will discuss the difference between Multithreading concurrency parallelism.

00:26.090 --> 00:31.760
We will discuss what are joinable detached threads and we will also discuss race conditions and how

00:31.760 --> 00:33.380
to handle race conditions.

00:33.380 --> 00:38.660
Then we will discuss the important aspects of the Multithreading is the thread cancellation and how

00:38.660 --> 00:40.610
to create listener threads.

00:40.640 --> 00:44.540
We will also discuss how threads can process and return results.

00:44.540 --> 00:49.820
And finally, in general Multithreading section, we will discuss how different threads in the same

00:49.820 --> 00:52.730
process can actually exchange data with each other.

00:52.730 --> 00:58.640
And we will discuss how as a developer you can take a control to pause and resume the threads at your

00:58.640 --> 01:04.440
will in the thread synchronization portion, we will going to cover critical section Mutexes Locks and

01:04.440 --> 01:05.250
deadlocks.

01:05.250 --> 01:07.890
We will discuss in detail what is condition variable?

01:07.920 --> 01:10.200
How does it differ from mutex?

01:10.230 --> 01:17.100
We will discuss weight and signal system call and how to use broadcast system call right using these

01:17.100 --> 01:18.510
condition variable and mutexes.

01:18.510 --> 01:23.640
We will going to do certain standard problems such as producer, consumer problem dining philosopher

01:23.640 --> 01:28.470
problem and we will going to discuss what is a spurious wakeups, which is a fundamental problem to

01:28.500 --> 01:29.520
multithreading.

01:29.520 --> 01:35.790
And then finally we will going to discuss semaphores and what are zero one semaphores and we will discuss

01:35.790 --> 01:38.160
how you can implement your own semaphores.

01:38.160 --> 01:43.140
And finally, towards the end of this course we will going to discuss the thread management and by the

01:43.140 --> 01:49.350
end of this course we will be in a position to proceed to sequel or advanced version of this course,

01:49.350 --> 01:56.490
which is a Part B, and in that course we will going to discuss the advanced concepts in thread synchronization

01:56.490 --> 02:02.100
as well as it will also open up the doors for us to do asynchronous programming concepts, which is

02:02.100 --> 02:03.720
pretty much advanced concepts.

02:03.720 --> 02:09.240
And coming to the prerequisite, the prerequisite of this course require you to have C and C plus plus

02:09.240 --> 02:10.380
programming skills.

02:10.410 --> 02:13.560
Now the level of programming skills required is not an expert.

02:13.560 --> 02:20.280
Even if you are just better than basic or intermediate level, you are good to go and very basic knowledge

02:20.280 --> 02:24.600
of data structures is required because at certain places we will going to use link list.

02:24.600 --> 02:28.470
And this is purely a course which uses Linux machine.

02:28.470 --> 02:33.450
You can run any Linux distribution either natively or as a virtual machine.

02:33.600 --> 02:36.030
I would recommend that you use Ubuntu.

02:36.450 --> 02:42.290
So if you are using Windows to do this course, so you can also do so, but do it at your own risk.

02:42.300 --> 02:47.940
All my codes have been tested only on Linux machine and I have never tested them on the Windows machine.

02:48.120 --> 02:54.480
The compiler that we will going to use is GCC compiler and you must have a GitHub account because all

02:54.480 --> 02:56.340
my codes are shared on the GitHub.

02:56.340 --> 03:02.520
And if you have a GitHub account then it would be easy for you to navigate through my source code or

03:02.520 --> 03:04.050
get an access to it.

03:04.050 --> 03:10.110
And finally, you should have a zeal to think and learn to do not only this course but any course whatsoever.

03:10.590 --> 03:14.670
So after doing this course, you will be able to design Multithreading applications.

03:14.670 --> 03:21.180
You would be able to choose when to thread and when not to write, and you will be able to implement

03:21.180 --> 03:22.980
thread synchronization techniques.

03:22.980 --> 03:29.160
You will be able to apply concepts to not only a programming language such as C or C plus plus, but

03:29.160 --> 03:34.020
in fact, if tomorrow you happen to become Java programmer, Python programmer or C sharp programmer,

03:34.050 --> 03:37.920
the concepts that you will learn in this course can very well be applied there.

03:37.920 --> 03:38.580
Right?

03:38.580 --> 03:44.430
So though I will demonstrate all my codes in the C language, but the concepts, but the concepts are

03:44.430 --> 03:50.010
language agnostic and you can apply those concepts very well in any programming language in future.

03:50.010 --> 03:50.640
Right?

03:50.670 --> 03:55.200
Then after doing this course, you will be in a position to answer interview questions with confidence

03:55.200 --> 03:56.970
and you can drive the interviews.

03:57.000 --> 04:01.410
Needless to say, you will be writing a couple of codes in this course and therefore you will get an

04:01.410 --> 04:03.450
enhanced coding and development skills.

04:03.450 --> 04:07.500
This course will also help you to build resume and GitHub portfolio.

04:07.500 --> 04:13.710
And you can join our group, which is a telegram group on Practicals and you can visit our website to

04:13.710 --> 04:15.150
know more about us.

04:15.480 --> 04:21.900
You cannot work with instructors or other students and get the opportunity to get referrals or any advice

04:21.900 --> 04:26.220
regarding career or anything else by joining our telegram group.

04:26.220 --> 04:27.480
So best of luck guys.

04:27.480 --> 04:28.710
See you in the course.
