CDK Global interview question

How to create deadlock in your code.

Interview Answers

Anonymous

12 May 2020

Though, I made few mistakes on that useless online IDE but mostly code was correct & idea was completely correct. Below is the working which has my 90% solution I gave during interview. public class CDKSample2 { public static void main(String[] args) throws InterruptedException { Resource1 resource1 = new Resource1(); Resource2 resource2 = new Resource2(); Thread t1 = new Thread(new Deadlock(resource1, resource2, 1)); Thread t2 = new Thread(new Deadlock(resource1, resource2, 2)); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println("Completed...."); } static class Deadlock implements Runnable { int order; Resource1 resource1; Resource2 resource2; public Deadlock(Resource1 resource1, Resource2 resource2, int order) { this.order = order; this.resource1 = resource1; this.resource2 = resource2; resource1.setResource2(resource2); resource2.setResource1(resource1); } @Override public void run() { if(order == 1) { resource1.getResource(); } else if(order == 2) { resource2.getResource(); } } } static class Resource1 { Resource2 resource2 = null; public Resource1() { } public void setResource2(Resource2 resource2) { this.resource2 = resource2; } public synchronized void getResource() { System.out.println("Resource1"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } resource2.getResource(); } } static class Resource2 { Resource1 resource1 = null; public Resource2() { } public void setResource1(Resource1 resource1) { this.resource1 = resource1; } public synchronized void getResource() { System.out.println("Resource2"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } resource1.getResource(); } } }

Anonymous

20 May 2020

For me the company recruiter got vanished like horns from the donkey & not even giving any feedback of the interview, even after requesting for it. Such unprofessional recruiters are here. Same experience was with unprofessional interviewer who didn't even show his face in video call.