Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Explain why the code below is not threaded safely. Note how the instance of a Leader class is instantiated. In the main method, create another

Explain why the code below is not threaded safely. Note how the instance of a Leader class is instantiated. In the main method, create another Leader named elected and have elected give a speech. Make your program thread-safe.

I've seen examples of this with but I'm on Mac OSX. Anything helps. Thanks in advance.

==============================================================================

#include

#include

#include

using namespace std;

class Leader

{

private:

static Leader * _instance;

Leader()

{

cout << "New leader elected" << endl;

}

public:

static Leader * getInstance()

{

if (_instance == NULL)

{

_instance = new Leader;

}

return _instance;

}

void giveSpeech()

{

cout << "Address the public" << endl;

}

};

Leader* Leader::_instance = NULL;

int main()

{

//leader *elected = new Leader(); lazy initialization

Leader::getInstance()->giveSpeech();

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

AWS Certified Database Study Guide Specialty DBS-C01 Exam

Authors: Matheus Arrais, Rene Martinez Bravet, Leonardo Ciccone, Angie Nobre Cocharero, Erika Kurauchi, Hugo Rozestraten

1st Edition

1119778956, 978-1119778950

More Books

Students also viewed these Databases questions

Question

Why is executive onboarding for external hires so difficult?

Answered: 1 week ago

Question

define EFFECTIVE PARTICIPATION

Answered: 1 week ago