1. Do you know what is data race?

When a program contains two conflicting accesses that are not ordered by a happens-before relationship, it is said to contain a data race. Two accesses to (reads of or writes to) the same variable are said to be conflicting if at least one of the accesses is a write

2. Tell us what is sequential consistency?

The result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program

3. Do you know what is a memory barrier?

A memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction that causes a CPU or compiler to enforce an ordering constraint on memory operations issued before and after the barrier instruction

4. Explain what is deadlock, livelock?

Deadlock is a situation in which two or more competing actions are each waiting for the other to finish, and thus neither ever does. A livelock is similar to a deadlock, except that the states of the processes involved in the livelock constantly change with regard to one another, none progressing.

5. Tell us what is thread contention?

Contention is simply when two threads try to access either the same resource or related resources in such a way that at least one of the contending threads runs more slowly than it would if the other thread(s) were not running. Contention occurs when multiple threads try to acquire a lock at the same time

6. Do you know java memory model?

A program is correctly synchronized if and only if all sequentially consistent executions are free of data races. Correctly synchronized programs have sequentially consistent semantics. Causality requirement for incorrectly synchronized programs.

7. Do you know what is race condition?

Behavior of software system where the output is dependent on the sequence or timing of other uncontrollable events

8. Tell me how experienced are you with MEAN?

The MEAN (MongoDB, Express, AngularJS, and Node.js) stack is the most popular open-source JavaScript software stack available for building dynamic web apps-the primary advantage being that you can write both the server-side and client-side halves of the web project entirely in JavaScript. Even if you aren't intending to use MEAN for your project, you can still learn a lot about the developer when they recount their experiences using JavaScript for different aspects of web development.

9. Tell us what is the difference between thread and process?

Threads (of the same process) run in a shared memory space, while processes run in separate memory spaces

10. Tell me what is monitor in Java?

Each object in Java is associated with a monitor, which a thread can lock or unlock

Download Interview PDF