Java programs can perform many actions in parallel, with each action being performed by a separate process known as a thread. A multi-threaded program might perform database access using one thread while another thread handles the display. Multithreading is a very powerful feature of the Java language. The downside to writing a multithreaded program is the additional complexity of dealing with the thread model. To solve this, we will start by examining the different types of databases available and the benefits of each type, along with a few simple examples. We will learn how to work with simple database operations in Java, including a hands-on example in which we start by processing a JSON file containing vehicle information, before persisting those vehicle objects to a database.
Moving along, we will expand on our example to process a JSON text file containing data, before persisting those objects to a MySQL database, leveraging the Hibernate framework. Finally, we will learn some of the basics of concurrency in Java, before we jump into a real-life example. We will look at how we can accelerate processing a large list of data, assuming the time to process each element of the list is expensive. We will look at some crucial techniques and caveats to be aware of in Java, with a hands-on example of how processes can lock or not be thread-safe when threading issues are incorrectly considered. We will expand our example to look at how we can accelerate our file processing and data manipulation by leveraging Java's multithreading functionalities. This will include a discussion on thread safety, and some of the steps a developer must take to ensure multi-threaded applications do not encounter problems. Threads ensure users are not blocked as they are independent and can perform multiple operations at the same time. Also threads help your application to run smoothly, and make tasks easier to perform.
Taking this course will show you exactly how to write programs so multiple activities can proceed concurrently in the same program, making optimal use of the available resources, especially when your computer has multiple CPUs.
About the Author
Colibri is a technology consultancy company founded in 2015 by James Cross and Ingrid Funie. The company works to help its clients navigate the rapidly changing and complex world of emerging technologies, with deep expertise in areas such as big data, data science, machine learning, and cloud computing. Over the past few years it has worked with some of the world's largest and most prestigious companies, including a tier 1 investment bank, a leading management consultancy group, and one of the world's most popular soft drinks companies, helping each of them make better sense of its data and process it in more intelligent ways. The company lives by its motto: Data -> Intelligence -> Action.
James Cross is a Big Data Engineer and certified AWS Solutions Architect with a passion for data-driven applications. He’s spent the last 3-5 years helping his clients to design and implement huge scale streaming Big Data platforms, Cloud-based analytics stacks, and serverless architectures.
He started his professional career in Investment Banking, working with well-established technologies such as Java and SQL Server, before moving into the Big Data space. Since then he’s worked with a huge range of Big Data tools including most of the Hadoop eco-system, Spark and many No-SQL technologies such as Cassandra, MongoDB, Redis and DynamoDB. More recently his focus has been on Cloud technologies and how they can be applied to data analytics, culminating in his work at Scout Solutions as CTO, and more recently with Mckinsey.
James is an AWS certified solutions architect with several years experience designing and implementing solutions on this cloud platform. As CTO of Scout Solutions Ltd, he built a fully serverless set of API’s and analytics stack based around Lambda and Redshift.
Colibri is a technology consultancy company founded in 2015 by James Cross and the company works to help their clients navigate the rapidly changing and complex world of emerging technologies.
He is interested in almost anything that has to do with technology. He has worked with everything from Wordpress to Hadoop, from C++ to Java, and from Oracle to DynamoDB. If it's new and solves a problem in an innovative way he’s keen to give it a go!