The VM specification
NO LONGER
makes any reference to JLS (Java Lang Spec)

Project Coin

What are the few limitations of Java 6 I/O?

What are the few limitations of Java 6 I/O?

Use the Future objects isDone() method

Event style programming

Why do we use Spring framework?
What is the main feature that frameworks like Spring/EJB provide?

Why do we use Spring framework?
What is the main feature that frameworks like Spring/EJB provide?

JSR-330

A static block takes a lock on what?

A static block takes a lock on what?


'Class' object

A method takes a lock on what?

A method takes a lock on what?


this

A static method takes a lock on what?

A static method takes a lock on what?


'Class' object

Are locks in Java re-entrant?

Are locks in Java re-entrant?


Yes. thread holding a lock that encounters a synchronization point for the same lock will be allowed to continue

JMM: Synchronizes-with: “releases happen before acquires”

JMM: Happens-before: usecases: program order and synchronizes-with

Features of Java JMM

Concurrency Design Concepts

Please explore java.util.concurrent package

Classloading

Classloaders

Method Handles and Method Types

Within Class Files...

A Digression into Performance

What is LATENCY?

What is LATENCY?

Latency is the end-to-end time taken to process a single work-unit at a given workload

What is THROUGHPUT?

What is THROUGHPUT?

Throughput is the number of units of work that a system can perform in some time period with given resources

What is UTILIZATION?

What is UTILIZATION?

Utilization represents the percentage of available resources that are being used to han- dle work units, instead of housekeeping tasks

What is EFFICIENCY?

What is EFFICIENCY?

The efficiency of a system is equal to the throughput divided by the resources used

What is CAPACITY?

What is CAPACITY?

Capacity is the number of work units (such as transactions) that can be in flight through the system at any time

What is SCALABILITY?

What is SCALABILITY?

Change in throughput or latency as resources are added is the scalability of a system

What is DEGRADATION?

What is DEGRADATION?

At what point and by how much the scale begins to tip

Memory speed has improved more slowly than CPUs have added transistors, which means there’s a risk that the processing cores will fall idle due to not having the relevant data on hand to process

Memory Latency Hierarchy


Hardware techniques like instruction-level parallelism (ILP) and chip multithreading (CMT), were used to try to keep the CPU operating on data, even in the face of the widening gap between CPU capability and memory latency
So, a large portion of CPU power is consumed in caching and data-locality and NOT in application processing
This means the future of application performance is intimately tied to good concurrency programming - get your skills right

Clocks


How many exist? And how do you get them?

Clocks



And these clocks DRIFT AWAY

Areas of Memory


How many exist?

Areas of Memory

Garbage Collection (GC)


How many exist?

Garbage Collection (GC)

G1

JVM


How many do you know?

JVM

Polyglot Programming

Polyglot

My Hypothesis

Thank you!!