The advent of (very) virtual threads in Java (Java 19 and up) enables modern Java to create 100,000's or millions of threads of execution in a single executable. However, by design the framework for managing these lightweight threads remains the same as when Java applications could support only far fewer numbers.
An Actor is a closed object whose only form of communication with the world outside of it is by exchanging messages with other Actors. Internally what an Actor does in response to specific messages is called its behavior, and an Actor may change its behavior in response to messages it has received. Importantly an Actor itself is single threaded and processes messages one at a time in the order in which they were received.
The world outside of an Actor is usually populated with (possibly millions) of other Actors and application creation is the process of defining the behaviors of classes of Actors and the messages being passed between them.
Actors implementations are not new - the Erland and Elixir languages are Actor inspired languages which run on a virtual machine designed specifically to support the Actor paradigm, and Akka is another example of an Actor system built on top of the JVM. Indeed Dust took some of its inspiration from Akka's 'classic' Actors, so if you are familiar with Akka you should find Dust to be very easy to get to grips with.