Skip to main content

Thread in Java and Hooking concept

THREAD:


Thread is the lightweight Process(uses Shared Memory of application).
States:


Mansur, [01.10.18 09:35]
Thread is a lightweight (uses the shared memory of application) process (program in execution in waiting state).
Multiprogramming execution of more than one application (vlc and notepad execute at a time)
Multithreading executes more than one threads in a single application. (in NFS 4 cars are executing at a time)
States of threads:
New state->ready .->running/waiting->dead state
To create thread:
1.Extending Thread Class
it contains start() method.
2.BY implementing Runnable Interface .






Start () method is present in the Thread class. It is used to create Thread. Whenever the Start method of Thread class is called it registers the thread into Thread Scheduler and calls the run method.
Recommendation:
  • we should not override start method in implementing class or extending class otherwise it will become normal method.
  • Start method of thread class calls run method
Run method :
it is available in runnable interface which is overriden by Thread class Run method.Run method is called by start method of Thread Class.


:Recommendation:


we should override the run method in our class to get the desired output of thread.


class Mythread extends Thread
{
public void run ()
{
for(int i=0;i<10 font="" i="">
System.out.println(i+" "+Thread.currentThread().getName());
}
}
class A
{
public static void main(String[] args) {
Mythread t=new Mythread();
t.start();
for(int i=100;i<110 font="" i="">
System.out.println(Thread.currentThread().getName()+i);
}
}




the output of the thread is decided by the thread Scheduler based on the algorithms.
1.Pre-emptive Algorithms.
2.Time-Slicing Algorithms.


On the basis of priority, the order of execution of the thread is decided.


Priority Varies from 1(MIN_PRIORITY) to 10(MAX_PRIORITY).


5 is NORM_PRIORITY. It is default priority of the main thread.
All the thread started by the main thread will also have default priority 5.
Less priority means the execution of that thread will be later.
Whenever we override the start method, the thread will not be created.






Generally, we use Runnable interface to use Threading in Program because the interface has multiple inheritances allowed...if we extends Thread class then we will not be able to extends other class however if we use Interface we can still have other class and interface to extends or implements.




class B
{
public static void main(String[] args) {
new Thread(new Thread(){public void run (){
for(int i=0;i<10 font="" getname="" i="" system.out.println="">
System.out.println("Hello java "+
getName());
}}).start();
new Thread(new Thread(){public void run (){
for(int i=0;i<10 font="" getname="" i="" system.out.println="">
System.out.println("Bye java "+getName());
}}).start();
System.out.println("main "+Thread.currentThread());
}


}




some methods of Thread class:
setName(): to set the name of Thread. Example : t.setName(“Beast Thread”);
getName(): to get the Thread name.Example: t.getnName();
setPriority(int ): to set the priority of the thread.
getPriority() : get the priorirty of the Thread.




Daemon Thread :
  • this process are those process which run in background.
  • daemon thread stops if main thread stops.
The function of Daemon Thread:
setDaemon(boolean): it is used to make the normal thread a Daemon.
Ex: st.etDaemon(true); will make the thread  as a daemon thread.
class demon extends Thread
{
public void run ()
{
for (int i=0;i<20 i="">
System.out.println("user defined Thread with deamon enabled "+i);
try{
Thread.sleep(1);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
class B
{
public static void main(String[] args) {
demon t=new demon();
t.setDaemon(true);// now the program terminates of the main thread stops.
//t.setDaemon(false); it will make the thread t to full run.
t.start();
for (int i=0;i<10 i="">
System.out.println("Main thread "+i);
}
}
}
_____________________________some Excpetion related methods_________________________
toString() : when we call toString the exception type and reason also comes.
getmessage():gives the exception only,it prints only the message part of the output printed by the object.
printStackTrace() : gives the whole Stack Trace of Exception.




By default, printStackTrace is called in the case of Exception.






Hook thread will be executed just before the termination of the JVM normally or abnormally.
Hook thread used to have the cleanup code.




Creating Hook thread:
Runtime.getRuntime().addShutdownHook(Thread obj);
Example:


class ShutDownHook
{
  public static void main(String[] args)
  {
  
    Runtime.getRuntime().addShutdownHook(new Thread()
    {
      public void run()
      {
        System.out.println("Shutdown Hook is running !");
      }
    });
    System.out.println("Application Terminating ...");
  }
}


class demon extends Thread
{
public void run ()
{
for (int i=0;i<20 i="">
System.out.println("user defined Thread with deamon enabled "+i);
try{
Thread.sleep(1);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
class B
{
public static void main(String[] args) {
demon t=new demon();
t.setDaemon(true);
t.start();
for (int i=0;i<10 i="">
System.out.println("Main thread "+i);
}
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){ System.out.println("shuttind down");
}
});
}
}

Comments

Popular posts from this blog

How to Put Google Adsense Below Post Title in Blogger?

Adsense is used by majority of expert bloggers for their website monetization because it is a cookie based contextual advertising system that shows targeted ads relevant to the content and reader. As bloggers are paid on per click basis, they try various ad placements on the blog to  increase the revenue  and get maximum clicks on the ad units. Well, on some blogs, you might have seen Adsense ad units placed below the post title. Do you know why? It is because the area just below the post title gets the most exposure and is the best place to put AdSense ad units to increase  Click Through Rate (CTR). Even though ads below post title work like a charm but this doesn’t mean that it will work for you as well. If you want to find out the best AdSense ads placement for your blog, try experimenting by placing ads at various locations such as header, sidebar, footer, etc. You can try other  blog monetization methods  as well to effectively monetize y...

50 intesting facebook facts

some facts about facebook if u type @[4:0] in any facebook comment box it will write mark zukerburg 1 in every 13 people on Earth is on Facebook 35+ demographic represents more than 30% of the entire user base 71.2 % of all USA internet users are on Facebook In 20 minutes 1,000,000 links are shared on Facebook In 20 minutes 1,484,000 event invites are posted In 20 minutes 1,323,000 photos are tagged In 20 minutes 1,851,000 status updates are entered In 20 minutes 1.972 million friend requests are accepted In 20 minutes 2,716,000 photos are uploaded In 20 minutes 2,716,000 messages are sent In 20 minutes 10.2 million comments are posted In 20 minutes 1,587,000 wall posts are written 750 million photos were uploaded to Facebook over New Year’s weekend 48% of young Americans said they found out about news through Facebook 48% of 18 to 34 year olds check Facebook right when they wake up 50% of active users log on to Facebook in any given day Average user has 130 friends ...

13 websites to register your free domain

Register your Free Domain Now!! 1)  .tk Dot TK is a FREE domain registry for websites on the Internet. It has exactly the same power as other domain extensions, but it’s free! Because it’s free, millions of others have been using .TK domains since 2001 – which makes .TK powerful and very recognizable.  Your website will be like www.yourdomainname.tk . It is free for 1 year. It’s a ccTLD domain whixh having the abbreviation  Tokelau. To create a .tk domain, Visit   www.dot.tk 2) co.cc Co.cc is completely free domain which is mostly used by blogspot bloggers because of it’s easy to use DNS system. Creating a co.cc for blogger is simple ( for instructions- “click here”). Your website will be like www.yourdomainname.co.cc . To create a .co.cc domain, visit www.co.cc 3)   co.nr co.nr is too like co.cc. Your website will be like  www.yourdomainname.co.nr . You can add it for blogger also.. To create a .co.cc domain, vi...

Flash and Unbrick Redmi 4 (India) [verified] [used by me]

Flash and Unbrick Redmi 4 (India) Please be noted I will not take any responsibility for anything happened to your device. Important: - Before flashing, it is advised to take the backup of data and make sure that your phone battery is charged enough. Note: This method will work with every ROM, Upgrade/Downgrade, Locked BL/Unlocked BL. Don't ask queries before reading the whole guide. NOTE: this guide is not written by ME . its by MUZ ..  When you can use Test Point for Flashing: 1. If a phone is totally dead, No Fastboot, No recovery. 2. If you are struck in Qualcomm USB 900e mode. 3. The bootloader is locked and a device is in bootloop. 4. You need to Flash Developer or Stable ROM on Locked BL. EDL Mode has been removed/Disabled from 8.1 onwards, you can flash on Unlocked BL only. Steps to Disassemble Redmi 4  (India)/4X: 1. Power off the Phone and remove the SIM Card Tray. You need below tools. 1. Anti-static angle tweezer 2....

Java API call Example using GSON, org.json.json and Jackson [ Simple Get Call] and parsing result as JSON

import com.fasterxml.jackson.databind.JsonNode ; import com.fasterxml.jackson.databind.ObjectMapper ; import com.google.gson.* ; import org.json.JSONArray ; import org.json.JSONObject ; import java.io.* ; import java.net.HttpURLConnection ; import java.net.URL ; public class APICALL { public static void main (String[] args) throws IOException { // String url="https://mocki.io/v1/19a50724-c2e5-46a1-b457-543462cdfde2"; String url= "https://jsonplaceholder.typicode.com/users" ; String line ; StringBuilder resp= new StringBuilder() ; System. out .println(url) ; HttpURLConnection con= (HttpURLConnection) new URL(url).openConnection() ; con.setRequestMethod( "GET" ) ; con.setRequestProperty( "Accept" , "application/json" ) ; System. out .println(con.getResponseMessage()) ; System. out .println(con.getContentType()) ; InputStream inputStream=con.getInput...

[ FREE ][ more than 15 gb for free ] Offcloud vs Bitport vs Seedr :which is best among three to direct download from torrent to cloud storages like google drive ,one drive ,dropbox etc.

Offcloud : [RECOMMENDED BY ME] [AS OF 17-july-2017] Offcloud is a little different from the rest of the providers we’ve looked at, as it isn’t focused on downloading torrents. The company markets itself as “a simple, elegant and intuitive  SaaS  to retrieve any data from the cloud.” We were surprised at the amount of different sources Offcloud supports for downloading, and it even has a ticket box that allows users to suggest new sites to support.  pros: best part you can direct download to your cloud storage like google drive , mega.NZ,one drive ,Dropbox,etc.. Cons: only 3 links permitted to download over free account ..that limit is per months .. you can buy a premium account to bypass this .............. else you can also use a fake email generator and add a remote account to cloud download bypasssing above limit.. Note that Off-cloud doesn’t intend to act as a “seedbox,” which is a server used to boost a user’s ration on private trackers by perpetua...

Streamlining Java Web Application Deployment with React WAR Generator

In the ever-evolving world of web development, managing builds and deployments can often be cumbersome and error-prone. Today, we're excited to introduce a tool designed to simplify and streamline this process: the React WAR Generator . What is the React WAR Generator? The React WAR Generator is a Python-based tool that automates the creation of WAR (Web Application Archive) files for Java web applications. It caters specifically to frontend projects built with React or similar frameworks, making it easier to package and deploy your web applications to a Tomcat server. Key Features Profile-Based Builds : With support for multiple profiles ( dev , test , prod , default ), you can build your application according to different environments and configurations. Version File Generation : Optionally generate a version file that integrates versioning information directly into your TypeScript files, ensuring your build versions are always up-to-date. Tomcat Deployment : Simplify your deploy...

Know ADMINISTRATOR PASSWORD THROUGH GUEST ACCOUNT

1) Go to C:/windows/system32. 2) Copy cmd.exe and paste it on desktop. 3) Rename cmd.exe to sethc.exe. 4) Copy the new sethc.exe to system 32,when windows asks for overwriting the file,then click yes. 5) Now Log out from your guest account and at the user select window,press shift key 5 times. 6) Instead of Sticky Key confirmation dialog,command prompt with full administrator privileges will open. 7) Now type “ NET USER ADMINISTRATOR “zzz” where “zzz” can be any password you like and press enter. 8) You will see “ The Command completed successfully” and then exit the command prompt and login into administrator with your new password Alternate:( incase you somehow manages single time to work as admin) . Right-click on the “My Computer” icon on the desktop OR in the Start Menu. 2. Select the option “Manage”. 3. On the left pane expand the “Computer Management (Local) tree (if it is not already expanded) 4. Double click “Local Users and Groups” option From “Syste...

crack .zip .rar files

Download: Win32 version rarcrack 0.2 (1.28M) Using RarCrack: rarcrack your_encrypted_archive.ext [--threads thread_num] [--type rar|zip|7z] Everything in [] are optional, rarcrack default crack two threads and autodetect the archive type. If the detection wrong you can specify the correct file type with the type parameter. RarCrack currently crack maximum in 12 threads. After the cracking started RarCrack will print the current status of cracking and save it’s to a status file. If you want more specific password character set, you need to run RarCrack to create the XML status file (3 sec). 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ uU This is a sample XML file, and you see there is a character set. If you want, you can modify this file and when you start RarCrack again the program will be use new variables. Warning: Take care when you changing this file, make sure the current password don’t have characters outside the abc[character set]!

Binary Search Tree in Java implementation (reference based, dynamic memory)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 import java.util.Scanner ; class BST { static BST . Node root = null ; public void insert ( int num ) { if ( root == null ) { root = new BST . Node ( num ); } else { // root node is not empty BST . Node temp = root ; while ( temp != null ) { if ( num <= temp . getVal ()) { if ( temp . getLeft () != null ) temp = temp . getLeft (); ...